欢迎光临散文网 会员登陆 & 注册

PyTorch-Mnist分类任务-1

2023-07-31 23:43 作者:ahut电院反卷局局长  | 我要投稿

 写在前面的话:

    从今天开始就要正式复现深度学习的代码,本人Python基础薄弱,所以尽可能查找资料,解释神经网络代码......每天的学习内容都会放在这里,希望能坚持下去!

    绿色文字解释不理解的代码

    蓝色文字用来提问

    红色文字专供快速抓取信息

    b站不好展现代码,所以就只好截图。写完工程会分享到夸克网盘

    文化程度有限,所以文笔比较随意

    

  • Mnist分类任务

    何为Mnist数据集?通俗来说,7万张手写数字的28*28*3大小的图片罢了。

    学术一点解释:60000 行的训练数据集(train)和10000行的测试数据(test)。60000 行的训练集分拆为 55000 行的训练集和 5000 行的验证集。

     本项目使用PyTorch框架,确实省了很多时间,梯度计算、损失函数、更新权重参数这些一行代码就能搞定。搭建神经网络也就是把所需要的输入/输出参数封装在一起即可(代码中写了两层神经网络)。

    废话不多说,开始干代码!

Mnist-code-1

    第1行:导入pickle模块实现了基本的数据序列与反序列化。

    何为数据序列与反序列化?

    序列化是将对象转化为字节序列的过程。反序列化:是将字节序列转化为对象的过程。说白了就是文件夹中的文件转换成二进制代码的过程。

    第2行:gzip是python中解压/压缩库(打开下载好的数据集压缩包)

    第3行:with...as... 函数:不用手动关闭文件。当执行完内容后,自动执行关闭文件。就是打开XXX文件指定为file。 使用gzip.open(filename, mode='rb') 函数,rb是只读+二进制形式的意思。只读模式下解压Mnist压缩包厚指定为file。

    第4行:pickle.load把file文件转化成python可以执行的对象。encoding="latin-1" 是编码方式采取latin-1的规范,感觉也不用懂这个....

    x是输入,y是输出。为什么会有(x_train, y_train), (x_valid, y_valid)?可能是Mnist数据集打开后有四列数据?解压Mnist文件后得到一个pkl文件,无法直接打开。现在快23点了,所以今晚先写到这里,明天再想吧......


PyTorch-Mnist分类任务-1的评论 (共 条)

分享到微博请遵守国家法律