文章目录
深度学习Week7——利用TensorFlow实现mnist手写数字识别
一、前言
二、我的环境
三、前期工作
1、配置环境
2、导入数据
3、归一化
4、图片可视化
5、调整图片格式
四、构建CNN模型
五、编译模型
六、训练模型
七、预测
1、Accuracy图
2、指定图片识别
八、我的收获与疑惑
一、前言
- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊 | 接辅导、项目定制
由于pytorch后面的算法本人学习起来难度过大,我思考了一段时间觉得是自己的基础仍然不扎实,确实,由于本人目前才大二,很多内容不是很理解,但好在时间比较充裕,因此慢慢来比一味的推进度要更适合我,因此从本周开始,我打算重新开始第一周的打卡,去细致的学习神经网络程序,去理解他的网络结构,体会各个层的作用,为后面更复杂的学习打下基础。
二、我的环境
- 电脑系统:Windows 10
- 语言环境:Python 3.11.3
- 编译器:Pycharm2023.2.3
深度学习环境:Pytorch
显卡及显存:RTX 3060 8G
三、前期工作
1、导入库并配置环境
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")
这一步与pytorch第一步类似,我们在写神经网络程序前无论是选择pytorch还是tensorflow都应该配置好gpu环境。
2、 导入数据
导入mnist数据,依次分别为训练集图片(train_images)、训练集标签(train_labels)、测试集图片(test_images)、测试集标签(test_labels),mnist数据集是著名的公开数据集,我们可以直接用代码进行下载调用
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
3、归一化
Q:什么是归一化?如何归一化?
A:将像素的值标准化至0到1的区间内。(对于灰度图片来说,每个像素最大值是255,每个像素最小值是0,也就是直接除以255就可以完成归一化。)
Q:为什么要归一化
A:我们归一化的目的将数据转换成具有统一尺度的形式,使得不同特征之间的数值范围相似或相同,使得模型更容易学习到合适的权重,提高模型性能,同时可以将所有特征的尺度统一到一个范围内,避免特征之间不合理的权重分配。
train_images,