Hugo Future Imperfect Slim

Xiang.Y

A bioinformation student

猫狗分类

用tensorflow分类猫和狗

Xiang.Y

1 minute read

Pic 1

这次神经网络实践的数据来自:https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/data

训练数据中,只有猫和狗两种类别。图片共25000张,猫和狗分别12500张。图片都来自于真实场景,图片大小不一致,数据较为复杂。

本来是有测试数据的,但是给的标签错了,所以我直接将训练数据分为测试数据(5000张),训练数据(20000张)

自己的实践之路:

之前的12306数据集让我明白,现成的经典网络结构比自己的好,所以我引用了alexnet。我将图片处理为227*227*3的大小,构建alexnet是神经网络,但是发现结果不是很好。

我又在Kaggle的猫狗数据网站上找到了其他人的分享https://www.kaggle.com/jeffd23/catdognet-keras-convnet-starter/notebook,用的是自改的vgg16,实现方式是keras。一开始我认为我的电脑运算能力不足以计算如此深层的神经网络。抱着试一下的态度,我尝试用tensorflow复现:

前向:

输入图片大小:64*64*3

所有卷积核大小为3*3

所有池化核的大小为2*2

均使用0填充

训练:

学习率:0.0001

正则:0.0001

batch size:16

loss:交叉熵

滑动平均

RMS优化器

vgg16是非常深的神经网络。该修改的版本也差不多。

网络结构:

  1. 3*3*32的卷积
  2. 3*3*32的卷积
  3. 2*2池化
  4. 3*3*64的卷积
  5. 3*3*64的卷积
  6. 2*2池化
  7. 3*3*128的卷积
  8. 3*3*128的卷积
  9. 2*2池化
  10. 3*3*256的卷积
  11. 3*3*256的卷积
  12. 2*2池化
  13. 256个节点的第一层全连接
  14. 256个节点的第二层全连接
  15. 2个节点的输出层

训练了18000轮,测试集85%的正确率,但是到了10000轮的时候就差不多稳定了。

作者的留言里写道他的正确率大约为90%,而且作者训练的数据只有总共的8%,我对此是有些疑问的。

Recent posts

See more

Categories

About

Something to say