一个 TensorFlow 图片分类例子

初学 TensorFlow,这是第一次 “能出来点结果” 的东西了。

想写一个难度适中的例子,但是网上要么就是 MNIST,要么就是 ImageNet,简直两个极端。Slim 的文档又有些太简略了,数据输入部分说明很含糊,也没找到一个我想要的例子。

经过一个星期的实验,反正搞出来了个这东西…… 凑和记录一下。

数据准备

我希望使用一个 图片路径 图片类别 的 txt 进行输入,而不想转换成 tfrecord。但这其实和转换成 tfrecord 没什么区别。

官方教程 里面有一个简单的例子,这里给扩展成完整的例子。

  1. 首先,我们需要将 txt 读进来,然后转换成 Tensor。
  2. 之后,我们可以获取的是 路径 类别 对。但这不是我们需要的数据。我们要把路径对应的图片读出来。如果有必要的话,还要对类别做一个 OneHot 编码。
  3. 然后,设置一下属性:是否循环,是否打乱……
  4. 最后,获取 Iterator。

代码如下:

定义网络

这个没什么好说的

定义一大堆 function

因为想用 TensorFlow 提供的高级函数。

这些 function 包括输入 function、训练 function……

最后就是 run 一下了

直接看代码吧。

总结

不足:

  1. 好像 GPU 使用率很低。
  2. 好像还是哪里有点问题,训练精度 1,测试精度 0.27。

发表评论

电子邮件地址不会被公开。 必填项已用*标注