深度神经网络实现手写数据集识别代码
时间: 2023-10-16 16:18:48 浏览: 38
以下是一个使用深度神经网络实现手写数字识别的Python代码示例:
首先,导入必要的库:
```python
import tensorflow as tf
from tensorflow import keras
```
然后,加载手写数字数据集(MNIST):
```python
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
```
接下来,对数据进行预处理,将像素值缩放到0到1之间:
```python
train_images = train_images / 255.0
test_images = test_images / 255.0
```
定义神经网络模型,包括输入层、两个隐藏层和输出层:
```python
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(64, activation='relu'),
keras.layers.Dense(10)
])
```
编译模型,指定损失函数、优化器和评估指标:
```python
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
```
训练模型:
```python
model.fit(train_images, train_labels, epochs=10)
```
使用测试数据评估模型:
```python
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('Test accuracy:', test_acc)
```
最后,使用模型进行预测:
```python
predictions = model.predict(test_images)
```
完整的代码如下:
```python
import tensorflow as tf
from tensorflow import keras
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_images = train_images / 255.0
test_images = test_images / 255.0
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(64, activation='relu'),
keras.layers.Dense(10)
])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10)
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('Test accuracy:', test_acc)
predictions = model.predict(test_images)
```
希望这可以帮助到你实现手写数字识别!