按照这个教程
我试图运行一个预写的TensorFlow模型,因为我使用的是TensorFlow 2,而我使用的代码是为旧版本设计的。具体来说,是tf.contrib。
来自原始代码:
from tensorflow.contrib import legacy_seq2seq
我找到的第一个修复方法:
from tensorflow.python.ops.seq2seq import sequence_loss
错误:
ModuleNotFoundError: No module named ‘tensorflow.python.ops.seq2seq’
我在哪里可以找到原来在tf.contrib中的方法,并导入和使用它们?旧的功能是否仍然存在?
回答:
请注意,tf.contrib在TF 2.0中已被删除。 来源
- 删除tf.contrib – 这些功能已经被移动到TensorFlow核心,或者tensorflow/addons,或者不再是TensorFlow构建的一部分,但由它们各自的所有者开发和维护。
- 更新和修订的文档、示例和网站,包括迁移文档和从TF 1.x到2.0的转换指南。
例如,tf.contrib.layers.layer_norm
,根据这个GitHub问题,已经被移动到这里:https://github.com/tensorflow/addons/tree/master/tensorflow_addons/layers。
TF 2.0:seq2seq
现在在tensorflow_addons
下
你可以在GitHub上找到如何处理TF 2.0下seq2seq
的帖子,位于tensorflow_addons:https://github.com/tensorflow/addons/tree/master/tensorflow_addons/seq2seq。它为你提供了如何将TF 1.x的seq2seq
转换为其TF 2.0等价物的清晰示例。查看来自TF 1.X的示例代码和迁移指南
# TF 2.0import tensorflow_addons as tfasampler = tfa.seq2seq.sampler.TrainingSampler()
从TF 1.x
升级到TF 2.0
我建议你首先尝试将TF 1.x代码迁移到TF 2.0。参考如何自动从TF 1.x升级到TF 2.0?