keras 2DCNN 十分类
时间: 2023-11-23 13:06:15 浏览: 82
DnCNN-keras
以下是使用Keras实现2D CNN进行十分类的示例代码:
```python
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
# 创建模型
model = Sequential()
# 添加卷积层和池化层
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 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(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_test, y_test))
```
其中,`Conv2D`表示卷积层,`MaxPooling2D`表示池化层,`Flatten`表示将多维输入一维化,`Dense`表示全连接层,`Dropout`表示随机失活层,`softmax`表示输出层激活函数。
需要注意的是,上述代码中的`x_train`和`y_train`分别表示训练数据和标签,`x_test`和`y_test`分别表示测试数据和标签。在实际使用时,需要根据具体情况进行替换。
阅读全文