前言
看了两三天tensorflow下的迁移学习,把整理的东西(一些博客、文件和认识整理汇总一下)
主要参考
博客 https://blog.csdn.net/two_vv/article/details/76769860
莫烦python https://morvanzhou.github.io
还有一些其他的,记不起了。
所需文件:
链接:https://pan.baidu.com/s/1hYkgcFUWPdA1TG5naJZLPg 密码:5zgv
环境:
anaconda5+python3.6+tensorflow1.8.0(?)
背景知识请阅读这篇博客。
开始正文
step1 将预训练的alexnet从caffe转换至tensorflow
#1 alexnet.py 定义原始alex网络的class
#2 caff_classes.py 原始alex网络在caffe中的分类类别的class
#3 bvlc_alexnet.npy 从caffe中的alexnet保存转换出来的参数文件,保存了重建网络所需的weight和bias等值
#4 myalexnet_forward_newtf.py 从caffe转换到tensorflow后的原始alex网络的分类测试模型,用以验证载入的模型参数是否有效
#5 test images 保存了一些可以直接用于测试分类效果的图片,分类时拷贝相应图片至python文件目录下
step2 微调网络(迁移)
#5 finetune.py 重新微调的alexnet,使之适用于自己的应用
#6 datagenerator.py 用于生成微调所用的数据
其他参考
#7 407_transfer_learning.py 莫烦老师的迁移学习教程,之后介绍
#8 vgg16.npy file7所需的预训练模型参数,同file3
step1操作
只需要将提到的文件放在同一目录下,在spyder中运行myalexnet_forward_newtf.py即可。依赖的包没有装齐全的话可以回遇到一些error,根据提示自行百度可以理解,然后pip install 相应的包。可以会遇到链接超时无法安装的问题,这时候一般是pip镜像被墙了,可以自行百度 “pip国内源” 相应解决。
输出结果是这样的:
测试的是dog2和zebra,狗和斑马。上图中的分类结果是前五的分类结果。可以看出dog2的情况不太好,因为特征可能不太明显;而斑马的情况很好,个人觉得是斑马本身的特征就很明显,所分类结果相对更准确一点。个人也验证了原参考博客中的三张验证图片,并不能达到这么好的效果,也不知到为什么。
step2操作
之后再更
参考资料整理:
[1] 莫烦python视频教学的博客整理版本1-14
[2] 莫烦python视频教学的博客整理版本15-22