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

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

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

DLLXW/Fashion-MNIST​github.com
No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)..._第2张图片

数据集介绍

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

zalandoresearch/fashion-mnist​github.com
No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)..._第3张图片

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

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

训练随机森林模型

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

需要提前安装的库为:sklearn

准备数据:

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

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

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

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

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

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

import 

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

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

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

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

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

模型训练/验证

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

def 

模型推理

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

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

#

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

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

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

完整项目已经上传github

DLLXW/Fashion-MNIST​github.com
No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)..._第9张图片

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

你可能感兴趣的:(No,module,named,MNIST,简单的机器学习程序)