python搭建VGGnet神经网络的详细代码
时间: 2023-06-06 18:05:59 浏览: 99
以下是使用Python搭建VGGNet神经网络的代码示例:
1. 导入相关包
```python
import numpy as np
import tensorflow as tf
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from keras.optimizers import RMSprop
```
2. 定义网络结构
```python
model = Sequential()
model.add(Conv2D(32, (3,3), activation='relu', input_shape=(224,224,3)))
model.add(MaxPooling2D((2,2)))
model.add(Conv2D(64, (3,3), activation='relu'))
model.add(MaxPooling2D((2,2)))
model.add(Conv2D(128, (3,3), activation='relu'))
model.add(MaxPooling2D((2,2)))
model.add(Conv2D(256, (3,3), activation='relu'))
model.add(MaxPooling2D((2,2)))
model.add(Flatten())
model.add(Dense(1024, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(4096, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1000, activation='softmax'))
```
3. 编译模型
```python
model.compile(loss='categorical_crossentropy', optimizer=RMSprop(lr=0.001), metrics=['accuracy'])
```
4. 加载训练集和测试集
```python
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'train/',
target_size=(224,224),
batch_size=64,
class_mode='categorical'
)
test_generator = test_datagen.flow_from_directory(
'test/',
target_size=(224,224),
batch_size=64,
class_mode='categorical'
)
```
5. 训练模型
```python
model.fit_generator(
train_generator,
steps_per_epoch=nb_train_samples//batch_size,
epochs=epochs,
validation_data=test_generator,
validation_steps=nb_test_samples//batch_size
)
```
说明:上述代码中,输入层的形状为(224,224,3),卷积层的核大小为(3,3),MaxPooling层的池化窗口大小为(2,2),Dropout层的参数为0.5。训练数据和测试数据使用Keras中的ImageDataGenerator类生成。调用fit_generator()函数来训练模型。
阅读全文