10 行 Python 代码构建你的第一个深度学习模型

2021-07-23 11:33:40 浏览数 (1)

使用 10 行 Python 代码构建你的第一个深度学习模型

今天的我们的目标是使用最少的代码,实现一个深度学习模型,完成手写数字识别的功能。

1. 使用 TensorFlow 2.0

安装 TensorFlow2.0.

代码语言:javascript复制
pip install tensorflow==2.0.0-rc0

然后呢,我们需要一个编辑器来写代码,强力推荐 Jupyter Notebook,简单易用方便调试。

代码语言:javascript复制
$ pip install jupyter notebook

万事具备,只差写代码了。启动编辑器 Jupyter Notebook。

代码语言:javascript复制
$ jupyter notebook

2. 数据集介绍

MNIST 是一个手写数字数据集,包含 60000 个训练样本,10000 个测试样本。数据内容是手写体的 0-9, 我们接下来的任务是使用 10 行代码实现神经网络,完成数字的识别。

3. 开始动手吧

3.1 导入 tensorflow 库

代码语言:javascript复制
import tensorflow as tf
print(tf.__version__)

3.2 导入数据集

代码语言:javascript复制
mnist = tf.keras.datasets.mnist # 导入数据 mnist数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data() # 将数据划分为训练数据和测试数据,其中x_train,x_test 为图像灰度值,y_train,y_test 为数据标签(指定数字具体是哪个)
x_train, x_test = x_train / 255.0, x_test / 255.0 # 输入的数据是图像的灰度值,对其进行归一化处理(灰度的最大值是255除以255)

3.3 分析数据集

代码语言:javascript复制
x_train.shape # 查看训练数据大小,训练数据总数为60000的28*28图像
(60000, 28, 28)
import matplotlib.pyplot as plt
plt.imshow(x_train[0]) # 查看第一条数据的图像
代码语言:javascript复制
y_train[0] # 查看第一条数据的标签
5

3.4 定义深度学习模型

代码语言:javascript复制
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

3.5 训练模型

代码语言:javascript复制
model.fit(x_train, y_train, epochs=5)
Train on 60000 samples
Epoch 1/5
60000/60000 [==============================] - 5s 76us/sample - loss: 0.2923 - acc: 0.9144
Epoch 2/5
60000/60000 [==============================] - 4s 69us/sample - loss: 0.1389 - acc: 0.9592
Epoch 3/5
60000/60000 [==============================] - 4s 69us/sample - loss: 0.1059 - acc: 0.9681
Epoch 4/5
60000/60000 [==============================] - 4s 69us/sample - loss: 0.0875 - acc: 0.9729
Epoch 5/5
60000/60000 [==============================] - 4s 71us/sample - loss: 0.0747 - acc: 0.9765
10000/10000 - 0s - loss: 0.0780 - acc: 0.9765

3.6. 检验模型

利用之前的测试数据,对手写数字分类模型的效果进行检验。

代码语言:javascript复制
model.evaluate(x_test,  y_test, verbose=2)
[0.07800268666106276, 0.9765]

结果显示,刚才构建的模型分类准确率为 97.65%。至此你的第一个深度学习模型已经完成。

4. 作者介绍

本人曾就职于海康威视,目前从事数据开发,专注于 Python,人工智能,大数据领域。

0 人点赞