No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)...

d27f9df9ccd28e442b26db0a4c03c5ab.png

这是一个入门机器学习和深度学习的小项目,以fashion-mnist数据为基础。分别利用机器学习(随机森林)和深度学习(多层感知机/卷积神经网络)方法进行训练。完整的包含数据读取,数据处理,训练, 验证,loss曲线的绘制,训练过程的可视化,模型推理,混淆矩阵的计算,特征图可视化等。因为最近总是会带一些学弟学妹入门,前段时间了解到这个数据集,感觉麻雀虽小五脏俱全,真的是一个很好的入门项目,把这一套搞明白了,做复杂的项目也都是水到渠成。于是乎花了点时间,找了些代码然后修改了一些,完善了很多的构件,这里当做一个记录吧!关于代码已经尽我所能的注释得很清楚了。完整的代码我已经上传github上面,并且readme里面会有使用方法:

DLLXW/Fashion-MNIST​github.com
782609de8027815f1b3022d809f6779d.png

数据集介绍

Fashion-mnist可以看作经典MNIST数据的加强版,号称计算机视觉领域的Hello, World,这里暂不作过多介绍。下面是数据集的github链接:

zalandoresearch/fashion-mnist​github.com
eecf0264e3281e024d411678ce44fbc0.png

用于训练的图片有6w张,用于验证的图片有1w张,每一个样本是一张28x28像素的图像。总共10中服饰类别。所以问题是一个10分类的问题

1c0b148327b2f1b81f4822e7c51038ea.png

训练随机森林模型

首先利用机器学习方法来进行一下该分类任务,这里选取随机森林.

需要提前安装的库为:sklearn

准备数据:

事实上很多机器学习库都已经集成了该数据集,也就是说可以在代码里面直接导入,但这里推荐自己手动下载下来。到上面的github链接页面,找到:

c738e9c853446706cdb862c5f3120ca8.png

下载数据集并且解压到自己的目录下

譬如我的数据格式组织如下:

10f8008754f942cbad10b1ade0cf59e4.png

数据集都解压到了raw文件夹。下面是实现用随机森林训练,验证,并且打印多分类混淆矩阵和分类信息的代码。

import 

这里稍微解释下多分类的混淆矩阵,对于二分类很好理解,多分类的混淆矩阵其实也是在二分类的基础上进行的,基本思想是:当研究其中的一类时,其余的各个类别都当做负类。

上面随机森林是一个经典的机器学习算法,以此作为例子对fashion-mnist数据集进行了分类。如果想换成其它的模型,也很容易,只需要简单的修改上面的几行代码。

Pytorch构建多层感知机和卷积神经网络进行分类

下面介绍一下如何构建一个多层的神经网络(多层感知机MLP)已经卷积神经网络来进行分类。这里用pytorch进行构建。这里给出的网络的构建代码,完整代码请参考github

#这里其实是构建一个最简单经典的神经网络

模型训练/验证

下面给出训练/验证部分代码,主要分为训练的参数设置;数据集加载;训练过程和验证过程;利用tensorboard实现训练过程的可视化,网络结构可视化等。

def 

模型推理

首先说明说明叫推理(infer):前面我们已经训练好了模型,同时也已经保存好了我们的模型(xxx.pt)。同时我们还在训练的过程中就验证(测试)了我们的模型训练效果;现在我们有了一张新图片,需要送给模型,让模型判断是属于哪个类别,这个过程就叫做模型的infer。

所以推理的前提是需要从保存的模型里面加载模型,同时要注意的是我们之前保存的只是模型的权重,并未保存模型的结构,所以还得导入前面定义的模型结构,然后将这些权重附着在网络的结构(骨架)之上。

#

最后贴上一些模型训练可视化的效果图

48da97be89353c0101921590b1b20c60.png

0adec3950a86fb42544045cbd90ea0df.png

完整项目已经上传github

DLLXW/Fashion-MNIST​github.com
e97d07c2e499142e7fbd6d3c6783a4e3.png

在readme里面有使用说明!!!希望大家素质三连

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值