初学 TensorFlow,这是第一次 “能出来点结果” 的东西了。
想写一个难度适中的例子,但是网上要么就是 MNIST,要么就是 ImageNet,简直两个极端。Slim 的文档又有些太简略了,数据输入部分说明很含糊,也没找到一个我想要的例子。
经过一个星期的实验,反正搞出来了个这东西…… 凑和记录一下。
数据准备
我希望使用一个 图片路径 图片类别
的 txt 进行输入,而不想转换成 tfrecord。但这其实和转换成 tfrecord 没什么区别。
在 官方教程 里面有一个简单的例子,这里给扩展成完整的例子。
- 首先,我们需要将 txt 读进来,然后转换成 Tensor。
- 之后,我们可以获取的是
路径 类别
对。但这不是我们需要的数据。我们要把路径对应的图片读出来。如果有必要的话,还要对类别做一个 OneHot 编码。 - 然后,设置一下属性:是否循环,是否打乱……
- 最后,获取 Iterator。
代码如下:
定义网络
这个没什么好说的
定义一大堆 function
因为想用 TensorFlow 提供的高级函数。
这些 function 包括输入 function、训练 function……
最后就是 run 一下了
直接看代码吧。
总结
不足:
- 好像 GPU 使用率很低。
- 好像还是哪里有点问题,训练精度 1,测试精度 0.27。
发表回复