day-01高层API手写数字识别实践(使用卷积神经网络)
AI Studio项目地址:https://aistudio.baidu.com/aistudio/projectdetail/1504778
一、导入相关库
import paddle
import numpy as np
import matplotlib.pyplot as plt
paddle.__version__ # 查看paddle版本
二、数据准备
1、数据加载和预处理
import paddle.vision.transforms as T
# 数据的加载和预处理
transform = T.Normalize(mean=[127.5], std=[127.5])
# 训练数据集
train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=transform)
# 评估数据集
eval_dataset = paddle.vision.datasets.MNIST(mode='test', transform=transform)
print('训练数据集样本数: {}, 验证数据集样本数: {}'.format(len(train_dataset), len(eval_dataset)))
2、数据集查看
print('图片')
print(type(train_dataset[120][0]))
print(train_dataset[120][0])
print('标签')
print(type(train_dataset[120][1]))
print(train_dataset[120][1])
# 可视化展示
# print(train_dataset[120][0].shape) # (-1, 28, 28)
plt.figure()
plt.imshow(train_dataset[120][0].reshape([28, 28]), cmap=plt.cm.binary) # 展示前要先将图片的格式转换为(28, 28)的形状
plt.show()
三、模型选择和开发
# 本次使用两层卷积层加上两层最大池化层和两层全连接层来构建网络
network = paddle.nn.Sequential(
# 卷积层的输入通道数为1,输出通道数为20, 卷积核大小为3*3, 移动步长为1,同卷积
paddle.nn.Conv2D(in_channels=1, out_channels=20