接下来我将带你从0-1搭建CNN网络模型(pytorch),制作一个关于猴子的分类器。
要解决这个问题,我们首先要准备好模型的食物——数据集。
本次数据集我们将采用Kaggle的公开数据集:
点击跳转链接,然后再点击download即可下载数据集到你想要存放的位置,之后我们会访问数据集的地址。
然后你打开数据集文件夹就可以看见打好了标签的十个文件夹。
接下来,我们就进入代码部分了。(前提是你已经有了python、pytorch等环境)
导入相关的包
接下来是比较关键的数据预处理和数据增强部分,这个部分我做了很多次尝试,对于不同的模型所适合的数据增强的操作是不一样的。比如基于VGG16、Resnet50、Mobilenet_v2等预训练模型时,不需要这么多操作就能达到100%。但,由于我们要自己搭建一个模型从头开始训练参数,数据量不够的情况下,这是我能做到的最合适的数据增强。这部分数据增强也参考了kaggle用户分享的一些前辈所采用的操作。
记得粘贴代码后替换数据集路径,值得小心一点的是有两个training,这是数据集本身多嵌套了一个文件夹的原因。无伤大雅。
然后是定义模型的部分,模型搭建这一步分我做了一些尝试,发现4层卷积神经网络对于这个数据集来说会相对好一些。如果想更深入的学习网络模型的搭建的话应该要通过绘制一些特征图去判断选择出最合适具体的模型结构。
再接下来就是模型训练以及一些绘制图像的代码,
粘贴好所有的代码之后,记得替换数据集路径,就可以运行了。模型开始训练。
训练完成后会输出一个混淆矩阵
以及 ,一些其他的参数......
然后,就是调用模型。这个调用的程序我没有运行,如果有问题的话需要你自己再调试一下,如果你解决不了的话可以私信我或者评论。
好了, 到这里,一个猴子的分类器就完成了。 接下来的部分只是为了更好的展示应用,我将模型转换成.pt文件,并通过安卓应用的形式实现拍照识别和本地图片识别。大概样子如下图,如果你感兴趣的话可以评论或私信呀。
因为我实际应用的模型不是自己搭建的模型,而是一个预训练模型,因此空间消耗比较大,但你仍然是可以采用自己的模型来应用的,这样内存占用会小十倍。
如果你对预训练模型来训练得到一个分类器感兴趣的话也可以,我的训练效果如下图
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/24090.html