如何将tf.contrib转换为Tensorflow 2.0

时间:2019-11-12 16:52:40

标签: python tensorflow

所以我试图使用Tensorflow来实现对象检测,而我的代码的一部分使用了tf.contrib。问题是tf.contrib在Tensorflow 2.0中不受支持。

我尝试使用tf_upgrade_v2脚本,但收到以下消息:

错误:在不推荐使用的模块tf.contrib中使用成员tf.contrib.slim。 tf.contrib.slim无法自动转换。 tf.contrib不会随TensorFlow 2.0一起分发,请考虑在非contrib TensorFlow中使用另一种方法,TensorFlow是由社区维护的存储库(例如tensorflow / addons),或者派生所需的代码。

import functools
import tensorflow as tf
from object_detection.core import box_predictor
from object_detection.utils import shape_utils
from object_detection.utils import static_shape

slim = tf.contrib.slim

1 个答案:

答案 0 :(得分:0)

由于tf.contrib中的所有项目均未得到Tensorflow的正式支持,并且已指定所有者来维护它。
所有的贡献和功能都旨在合并到核心Tensorflow中。

从Tensorflow 2.0版本开始,所有contrib项目在未来都拥有以下三种选择之一:move to core; move to a separate repository;或delete,其中大多数已与各自的项目所有者进行了审查。

link提供了tf.contrib下所有项目的详细信息和状态。

如果您使用的库已移至核心或单独的存储库,则TensorFlow从1.x到2.x的自动代码迁移将不适用于tf.contrib项目。您需要手动更改这些部分的代码,建议继续进行。

我在表中看到tf.contrib.slim已移至tensorflow/models,您可以按照link进行详细使用。