写一段深度学习之图像识别代码
时间: 2023-05-27 13:02:34 浏览: 70
由于深度学习之图像识别是非常复杂的一个领域,其中精度和运算速度也是关键。以下是一个简单的图像识别代码,用于识别手写数字。该代码使用了 TensorFlow 和 Keras 框架,实现了一个简单的卷积神经网络。
```python
import tensorflow as tf
from tensorflow import keras
# 加载手写数字数据集
(X_train, y_train), (X_test, y_test) = keras.datasets.mnist.load_data()
# 数据预处理
X_train = X_train / 255.0
X_test = X_test / 255.0
# 定义模型
model = keras.Sequential([
keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)),
keras.layers.MaxPooling2D((2,2)),
keras.layers.Flatten(),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
# 编译模型
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), verbose=1)
# 评估模型
model.evaluate(X_test.reshape(-1,28,28,1), y_test, verbose=1)
# 使用模型进行预测
prediction = model.predict(X_test.reshape(-1,28,28,1))
```
这个模型使用了 Conv2D 来处理图像,MaxPooling2D 来减少特征图的大小,Flatten 将特征图展平,两个 Dense 层用于分类,最后一层使用 softmax 激活函数输出了每个类别的概率。训练时使用了 Adam 优化器和 sparse categorical crossentropy 损失函数。在训练 5 个 epochs 后,模型达到了 98% 的精度。