解锁lintcode-猫和狗的问题

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


你可能感兴趣的:(机器学习,lintcode,猫狗分类,人工智能,cnn)