来自 | 知乎 作者 | 郁振波
地址 | https://zhuanlan.zhihu.com/p/7792356
编辑 | 深度学习这件小事公众号
本文仅作学术分享,如有侵权,请联系删除 最近刚开始用pytorch不久,陆陆续续踩了不少坑,记录一下,个人感觉应该都是一些很容易遇到的一些坑,也在此比较感谢帮我排坑的小伙伴,持续更新,也祝愿自己遇到的坑越来越少。首先作为tensorflow的骨灰级玩家+轻微强迫症患者,一路打怪升级,从0.6版本用到1.2,再用到1.10,经历了tensorfow数个版本更迭,这里不得不说一下tf.data.dataset+tfrecord使用起来效率远比dataloader高的多。tensorflow有一个比较好用的队列机制,tf.input producer + tfrecord, 但是inputproducer有一个bug,就是无法对每个epoch单独shuffle,它只能整体shuffle,也就意味着我们无法进行正常的训练流程(train几个epoch,在validation上测一个epoch,最终选一个validation上的最好的结果,进行test)。后来我当时给官方提了一个issue,官方当时的回答是,这个bug目前无法解决,但是他们在即将到来的tf1.2版本中, 推出的新型数据处理API tf.contrib.data.dataset(tf1.3版本将其合并到了tf.data.dataset)可以完美解决这个bug,并且将于tf2.0摒弃tf.input_producer。然后tf1.2版本刚出来以后,我就立马升级并且开始tf.data.dataset踩坑,踩了大概2周多的坑,(这个新版的API其实功能并不是非常强大,有不少局限性,在此就不展开)。——————————————————————————好像扯远了,回归py