inception v3 using tf.data?



我使用的是一些由谷歌人员分发的从inception v3派生的代码,但它现在抱怨用于读取数据的队列运行程序不受欢迎(image_processing.py中的tf.train.string_input_producer等(。显然,我应该切换到tf.data来处理这种事情。

不幸的是,tf.data上的文档并不能缓解我的担忧,即我有太多的数据无法放入内存,特别是考虑到我想以可重复使用的方式批量处理它,等等。我相信tf.data的东西可以做到这一点;我只是不知道如何做到这一点。有人能给我举一个完整的代码示例吗?该示例使用tf.data来处理无法全部放入内存的批量数据?理想情况下,它只是inception-v3代码的更新版本,但我很乐意尝试使用任何东西。谢谢

好吧,我最终做到了。在对我的问题的评论中引用的各种文档都符合我的需求,我逐渐弄清楚了传递给队列管理器的哪些参数与tf.data中的哪些参数相对应。

有一个问题我花了一段时间才解决。在初始实施中,用于验证的示例数量四舍五入为批量大小的倍数;假设验证集被重新排列,并且一些示例被多次使用。(我觉得这不是一个很好的实践,但通常验证实例的数量远大于批量大小,因此只有相对较少的实例被重复计数。(

在tf.data中,启用搅乱和重用是一件单独的事情,我没有在验证数据上这样做。然后事情就坏了,因为没有足够的唯一验证实例,我不得不追踪它。

我希望这能帮助下一个人解决这个问题。不幸的是,我的代码已经偏离了Inceptionv3,我怀疑发布我的修改是否有帮助。谢谢

最新更新