深度学习Tensorflow第T1周:实现mnist手写数字识别
- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊
🍺 本周任务:
- 跑通程序
- 了解深度学习是什么
这是TensorFlow的第一篇教案,也是深度学习的入门案例,我们或许可以按照下面的步骤进行学习
- **👉 第一步:**整体把握每一部分代码的功能,看第1遍
- **👉第二步:**把握每一行语句的含义,知道实现的是什么功能就行,这里需要不求甚解,看第2遍
- **👉第三步:**动手跟着教案敲一遍代码,把代码跑通
📑备注:
- 如果你之前没有接触过深度学习,第一篇你学起来可能比较蒙,不要着急,等到第3、4篇教案的时候,你会逐步理解的,不要尝试一下就弄明白。
- 把程序当做一个黑盒,先去学会使用(这是我们现阶段的任务),然后再去理解其原理。
🦾我的环境:
-
语言环境:Python3.11.9
-
编译器:jupyter notebook
-
深度学习环境:TensorFlow2.17.0
一、前期工作
1. 设置GPU(如果使用的是CPU可以忽略这步)
import tensorflow as tf
gpus = tf.config.list_physical_devices("GPU")
if gpus:
gpu0 = gpus[0] #如果有多个GPU,仅使用第0个GPU
tf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量按需使用
tf.config.set_visible_devices([gpu0],"GPU")
else:
print('---------------cpu-------------')
👉 输出:
---------------cpu-------------
2. 导入数据
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
# 导入mnist数据,依次分别为训练集图片、训练集标签、测试集图片、测试集标签
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
3. 归一化
数据归一化作用
-
使不同量纲的特征处于同一数值量级,减少方差大的特征的影响,使模型更准确。
-
加快学习算法的收敛速度。
更详解的介绍请参考文章:🔗归一化与标准化
# 将像素的值标准化至0到1的区间内。(对于灰度图片来说,每个像素最大值是255,每个像素最小值是0,也就是直接除以255就可以完成归一化。)
train_images, test_images = train_images / 255.0, test_images / 255.0
# 查看数据维数信息
train_images.shape,test_images.shape,train_labels.shape,test_labels.shape
"""
输出:((60000, 28, 28), (10000, 28, 28), (60000,), (10000,))
"""
👉 输出:
“”"
输出:((60000, 28, 28), (10000, 28, 28), (60000,), (10000,))
“”"
4. 可视化图片
# 将数据集前20个图片数据可视化显示
# 进行图像大小为20宽、10长的绘图(单位为英寸i

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



