首页 > 解决方案 > 如何将 tf.contrib 转换为 Tensorflow 2.0

问题描述

所以我正在尝试使用 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/addons,或 fork 所需的代码。

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

标签: pythontensorflow

解决方案


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

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

链接提供 下所有项目的详细信息和状态tf.contrib

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

我可以在tf.contrib.slim移到的表格中看到tensorflow/models,您可以点击此链接了解详细用法。


推荐阅读