任务简介:使用tensorflow==1.14.0框架完成100类小图的目标分类任务
图片形式:图片集以文件夹形式存储,每一个文件夹内都包含有一类图片,共100类图片,每类图片的分辨率不同,图片个数不同,每类图片都以.jpg形式存储;
1(1)中图片
生成训练集与测试集:遍历上述目录提取文件打乱后每类按照7:3的比例划分,生成训练集text文件夹与验证集val文件夹,放在split_image文件夹中;
生成txt文件:遍历训练集与测试集,生成训练text.txt文件与val.txt文件,包括图片地址+空格+分类标签;
数据预处理:对图片进行预处理,得到深度学习模型的输入要求尺寸,并在训练时进行图像增强操作,并进一步得到next_batch与init_op等;
模型:选定模型结构,并复现相关代码
定义一些op:定义超参数,处理模型输出结果等
创建session:运行这些op
遇到的一些问题:
生成的txt文件格式不对:
图片路径可将'\'改为'/'
注意空格位置
可使用写字板进行一些处理:替换等操作
epoch运行时间越来越长:
在session中尽量不包含tf操作,会占用内存,导致时间较慢
学会使用debug:
注意tensor与ndarray的格式切换,feed_dict的要求要注意,我使用的是sess.run()完成的格式转换,应该还有更好的方法,欢迎大佬在评论区告知,不胜感激;
注意get_next()函数在迭代时的位置,每个epoch都需要调用,不能只运行一次,不然会出现只能运行一个epoch的情况;
总结
从入门深度学习以来,这是我第一个实际的深度学习项目,尽管只是一个100类小图的目标分类,但是我的收获很多,比如完整的了解了实现一个目标分类任务的流程,图像的预处理,函数的编写与调用等,各种格式的转换等等,这个任务虽然不难,但其中的曲折也许只有个人能够体会,当最后看到程序能够运行,我想说所有的辛苦都值得等待,之后我会进一步优化这个算法,使它更快更准。
这篇博文字数不多,就当是我这一个月以来的小小总结吧,记录下此时的心情,希望之后更好,代码的话因为我是在公司实习所写,无法分享给大家,大家有什么问题可以在评论区问我或者与大家一起讨论,也欢迎大家可以给我这个刚入门的小白一些指导,在此先谢谢大家!