南宁的网站建设,互联网营销师证书查询入口,免费网络推广培训课程,设计工作网站深度学习-第T1周——实现mnist手写数字识别深度学习-第P1周——实现mnist手写数字识别一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、导入数据集3、归一化4、可视化图片5、调整图片格式四、构建简单的CNN网络五、编译并训练模型1、设置超参数2、编写训练函数六、预…
深度学习-第T1周——实现mnist手写数字识别深度学习-第P1周——实现mnist手写数字识别一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、导入数据集3、归一化4、可视化图片5、调整图片格式四、构建简单的CNN网络五、编译并训练模型1、设置超参数2、编写训练函数六、预测七、总结深度学习-第P1周——实现mnist手写数字识别
一、前言 本文为365天深度学习训练营 中的学习记录博客 原作者K同学啊 二、我的环境
电脑系统Windows 10语言环境Python 3.8.5编译器colab在线编译深度学习环境Pytorch
三、前期工作
1、导入依赖项并设置GPU
import tensorflow as tf
gpus tf.config.list_physical_devices(GPU)if gpus:gpu0 gpus[0]tf.config.experimental.set_memory_growth(gpu0, True)tf.config.set_visible_device([gpu0], GPU)2、导入数据集
使用dataset下载MNIST数据集并划分训练集和测试集
使用dataloader加载数据
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt(train_images, train_lables), (test_images, test_lables) datasets.mnist.load_data()3、归一化
数据归一化作用 使不同量纲的特征处于同一数值量级减少方差大的特征的影响使模型更准确加快学习算法的准确性 train_images, test_images train_images / 255.0, test_images / 255.0train_images.shape, test_images.shape, train_lables.shape, test_lables.shape4、可视化图片
#进行图像大小为10宽10长的绘图
plt.figure(figsize (10, 10))for i in range(20):plt.subplot(2, 10, i 1)#设置不显示x轴刻度plt.xticks([])#设置不显示y轴刻度plt.yticks([])#设置不显示子图网络格plt.grid(False)#图像显示cmap为颜色绘图plt.cm.binary为matplotlib.cm的色表plt.imshow(train_images[i], cmap plt.cm.binary)#设置x轴为标签显示的图片的对应的数字plt.xlabel(train_lables[i])
5、调整图片格式
train_images train_images.reshape((60000, 28, 28, 1))
test_images test_images.reshape((10000, 28, 28, 1))四、构建简单的CNN网络
对于一般的CNN网络来说都是由特征提取网络和分类网络构成其中特征提取网络用于提取图片的特征分类网络用于将图片进行分类。
#二、构建简单的CNN网络
# 创建并设置卷积神经网络
# 卷积层通过卷积操作对输入图像进行降维和特征抽取
# 池化层是一种非线性形式的下采样。主要用于特征降维压缩数据和参数的数量减小过拟合同时提高模型的鲁棒性。
# 全连接层在经过几个卷积和池化层之后神经网络中的高级推理通过全连接层来完成。
model models.Sequential([layers.Conv2D(32, (3, 3), activation relu, input_shape (28, 28, 1)),layers.MaxPooling2D((2, 2)),layers.Conv2D(64, (3, 3), activation relu),layers.MaxPooling2D((2, 2)),layers.Flatten(),layers.Dense(64, activation relu),layers.Dense(10)])model.summary()
#以上为简单的tf八股模板可以看B站的北大老师曹健的tensorflow笔记五、编译并训练模型
1、设置超参数
#这里设置优化器损失函数以及metrics
model.compile(#设置优化器为Adam优化器optimizer adam,#设置损失函数为交叉熵损失函数loss tf.keras.losses.SparseCategoricalCrossentropy(from_logits True),metrics [accuracy]
)2、编写训练函数
history model.fit(train_images,train_lables,epochs 10,validation_data (test_images, test_lables)
)六、预测
plt.imshow(test_images[1])pre model.predict(test_images)
pre[1]七、总结
提前看了一遍北大软微老师的tf笔记对于tensorflow建模型的八股大致弄懂了