TensorFlow 2.x 有哪些坑?

我们组正在考虑是否将TF升级为2.x,2.x 的优点我已经了解的差不多了,但对其缺点还不是很清楚,请问大家都踩过哪些tf 2.x的坑?

经过大半年与TF2.x的磨合,我认为2.x的缺点有:

  1. 启动时间慢
  2. 与Python的交互体验较差
    • Python端的内存泄露(此issue至今未修复)
    • tf.data API高效的同时,也不够灵活,无法方便地将Python对象作为batch的一部分
  3. Keras的风格偏向于教条派
    • 用户按Keras的compile/fit才能获得最佳体验
    • 一旦开始自定义,学习曲线陡增

TensorFlow从来不是一个Python项目。如果你们组是纯research的话,可能2.x没有想象的那么灵活。如果有生产需要,TensorFlow不可或缺。生产用的模型大多静态,1.x已经足够胜任。

1 Like

谢谢hancks的回复。我们组是面向生产的,目前还在用1.13.1,但是1.x开发模型太繁琐了,所以考虑用2.x,现在看来还是要再谨慎一些。

一回生二回熟 用keras做自定义的layer也没有想象中的那么复杂
1.x的版本太繁杂了 狠狠心就2.x了

有道理,我们已经转向tf2了。

顺便问问,目前大家用tf2的eager模式吗

HanLP的FastTextEmbeddingTF只能eager。当需要计算SpanF1的时候,HanLP所有的tagger都必须eager: