【问题标题】:Tensorflow module not found with tensorflow 2, where to find docs for new way?tensorflow 2 中找不到 TensorFlow 模块,在哪里可以找到新方法的文档?
【发布时间】:2019-10-21 16:12:00
【问题描述】:

following this tutorial
我正在尝试为 TensorFlow 运行预先编写的模型,因为我正在运行 TensorFlow 2,而我使用的代码是针对旧版本的。具体来说,tf.contrib。

来自原始代码:

from tensorflow.contrib import legacy_seq2seq

从我发现的第一个修复中:

from tensorflow.python.ops.seq2seq import sequence_loss

错误:

ModuleNotFoundError: 没有名为“tensorflow.python.ops.seq2seq”的模块

在哪里可以找到 tf.contrib 中的方法,并导入它们并使用它们?旧功能还存在吗?

【问题讨论】:

  • tf.contrib 已被弃用很长时间,并已从 TF2 中删除。功能要么被完全删除,要么转移到 TF 的其他部分。 tf.python.ops 模块 IIRC 已设为私有。更改教程并搜索基于keras 或特别是TF2 的教程。
  • @GPhilo 谢谢!您认为我可以使用 keras 重新编写 model.py 页面吗?还是我应该像你说的那样放弃所有东西并找到另一个演示?
  • IMO,您更有机会找到专门针对 Keras/TF2 的更好教程。我没有看这个,但如果他们使用 lefacy_seq2seq 我不会认为它是最新的
  • 很高兴知道!感谢您的意见!

标签: python tensorflow machine-learning upgrade tensorflow2.0


【解决方案1】:

请注意,tf.contrib 已在 TF 2.0 中删除Source

  • 删除 tf.contrib - 这些功能要么已移至 TensorFlow Core,要么移至 tensorflow/addons,要么不再是 TensorFlow 构建的一部分,而是由其各自所有者开发和维护。
  • 更新和修订了文档、示例和网站,包括迁移文档和 TF 1.x 到 2.0 转换器指南。

例如tf.contrib.layers.layer_norm,根据this github issue 移动到这里:https://github.com/tensorflow/addons/tree/master/tensorflow_addons/layers

TF 2.0:seq2seq 现在在 tensorflow_addons 之下

您可以在 TensorFlow_addons 下找到一篇关于如何处理 TF 2.0 的 seq2seq 的 github 帖子:https://github.com/tensorflow/addons/tree/master/tensorflow_addons/seq2seq。它为您提供了一个清晰的示例,说明如何将 TF 1.x seq2seq 转换为其 TF 2.0 相等的。看下Sample code and Migration guide from TF 1.X

# TF 2.0
import tensorflow_addons as tfa
sampler = tfa.seq2seq.sampler.TrainingSampler()

TF 1.x 到 TF 2.0 升级

我建议您首先尝试将 TF 1.x 代码迁移到 TF 2.0。参考how to automatically upgrade from TF 1.x to TF 2.0?

Recommended upgrade process

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 2020-08-15
    相关资源
    最近更新 更多