PyTorch-Mnist分类任务-1
写在前面的话:
从今天开始就要正式复现深度学习的代码,本人Python基础薄弱,所以尽可能查找资料,解释神经网络代码......每天的学习内容都会放在这里,希望能坚持下去!
绿色文字解释不理解的代码
【资料图】
蓝色文字用来提问
红色文字专供快速抓取信息
b站不好展现代码,所以就只好截图。写完工程会分享到夸克网盘
文化程度有限,所以文笔比较随意
Mnist分类任务
何为Mnist数据集?通俗来说,7万张手写数字的28*28*3大小的图片罢了。
学术一点解释:60000 行的训练数据集(train)和10000行的测试数据(test)。60000 行的训练集分拆为 55000 行的训练集和 5000 行的验证集。
本项目使用PyTorch框架,确实省了很多时间,梯度计算、损失函数、更新权重参数这些一行代码就能搞定。搭建神经网络也就是把所需要的输入/输出参数封装在一起即可(代码中写了两层神经网络)。
废话不多说,开始干代码!
第1行:导入pickle模块实现了基本的数据序列与反序列化。
何为数据序列与反序列化?
序列化是将对象转化为字节序列的过程。反序列化:是将字节序列转化为对象的过程。说白了就是文件夹中的文件转换成二进制代码的过程。
第2行:gzip是python中解压/压缩库(打开下载好的数据集压缩包)
第3行:with...as... 函数:不用手动关闭文件。当执行完内容后,自动执行关闭文件。就是打开XXX文件指定为file。 使用(filename, mode='rb') 函数,其中rb是只读+二进制形式的意思。只读模式下解压Mnist压缩包厚指定为file。
第4行:把file文件转化成python可以执行的对象。encoding="latin-1" 是编码方式采取latin-1的规范,感觉也不用懂这个....
x是输入,y是输出。为什么会有(x_train, y_train), (x_valid, y_valid)?可能是Mnist数据集打开后有四列数据?解压Mnist文件后得到一个pkl文件,无法直接打开。现在快23点了,所以今晚先写到这里,明天再想吧......
标签: