新手小白一个,我准备将自己的学习记录在这里,希望能遇到一些并肩同行的伙伴,希望大佬在评论区交流指出我的不足!最近在写准备写一个手写汉字识别的神经网络,于是跟大佬从头开始学习(莫烦python),首先从数字识别开始,把代码根据理解的加上了注释,让大家看的更明白,如果有同学对于函数不太理解,我把感觉通俗易懂的解释链接也放在下方。
如果引用的超链接损害了您的权益,请及时与我联系删除。
①导入模块
import torch
import torch.nn as nn # 神经网络库
from torch.autograd import Variable
import torch.utils.data as Data #数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集。
import torchvision # 包括了图片的数据库
import matplotlib.pyplot as plt # 出图程序
②设置超参数
超参数:
在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
来源于百度百科
EPOCH = 1 # 训练几次
BATCH_SIZE = 50 # 数据集划分
LR = 0.001 # 学习率
DOWNLOAD_MNIST = False # 下载数据集
③数据集处理
train_data = torchvision.datasets.MNIST(
root = './mnist', # 数据路径
train = True, # True为训练集 False为测试集
transform = torchvision.transforms.ToTensor(),
download = DOWNLOAD_MNIST
)
torchvision.
datasets
是一个包含多种数据集的工具库,MNIST是其数据集之一
数据下载:
将DOWNLOAD
赋值为True,等待下载即可,完成后赋值为False
.ToTensor
-将[0,255]范围内的PIL.image(RGB)或numpy.ndarray(HxWxC)转换为[0.0,1.0]范围内的torch.FloatTensor(CxHxW)
h:图片高度
w:图片宽度
c:图片通道数
train_loader = Data.DataLoader(dataset=train_data, batch_size=BATCH_SIZE, shuffle=True) #迭代器
test_data = torchvision.datasets