2维cnn python
时间: 2023-09-23 13:02:39 浏览: 120
下面是一个简单的2维CNN的Python代码示例:
```python
import tensorflow as tf
# 定义模型结构
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Conv2D(filters=64, kernel_size=(3, 3), activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(units=128, activation='relu'),
tf.keras.layers.Dense(units=10, activation='softmax')
])
# 加载数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train.reshape(-1, 28, 28, 1), y_train, epochs=5, validation_data=(x_test.reshape(-1, 28, 28, 1), y_test))
# 评估模型
model.evaluate(x_test.reshape(-1, 28, 28, 1), y_test)
```
以上代码通过使用TensorFlow和Keras库来创建一个简单的2D CNN模型,对MNIST数据集进行分类。模型结构包括两个卷积层,两个最大池化层,一个展平层和两个全连接层。我们使用“adam”优化器和“sparse_categorical_crossentropy”损失函数进行编译,并在训练期间使用验证数据进行模型的评估。
阅读全文