1,采用cnn算法,目前准确率做到84.7%,用了几种图像预处理算法和旋转之类的增加训练样本的方法,效果不理想,后继续再改进,有高手欢迎分享源码一块学习
2,遇到的一些问题及解决办法:
(1)XXX is nan
交叉熵计算时出现了梯度爆炸,需要对预测值做clip_by_value进行截断,注意一下min,与max的设置
(2)对图像数据需要进行归一化
可以选用tensorflow自带的tf.image.per_image_standardization,
或用tf.image.convert_image_contrast对像素点数据转为浮点数,
或用tf.mulply(tf.cast(img,tf.float32),1.0/255.0)相当于将每个像素点除以255
(3)过拟合与交叉验证
把训练数据分为训练数据和验证数据,用训练数据验证,用验证数据验证,注意验证数据与训练数据不要有交集,
否则会造成过拟合
(4)shuffle_batch提示数据不足,出现异常
把数据分多个文件,多线程读取,
3,问题背景
http://www.lintcode.com/ai/cats-and-dogs/overview
4,源码地址
https://github.com/tingwu-zhang/ML/tree/master/catanddog/src

本文介绍使用CNN算法进行图像分类的实际应用案例,详细讨论了如何通过多种图像预处理技术和增加训练样本的方法来提升分类准确率,并分享了解决梯度爆炸、过拟合等问题的经验。
2万+

被折叠的 条评论
为什么被折叠?



