模块';tensorflow';没有属性';contrib&x27;

模块';tensorflow';没有属性';contrib&x27;,tensorflow,Tensorflow,我正在尝试使用Tensorflow对象检测API来训练我自己的自定义对象检测器 我在谷歌计算引擎中使用“pip install tensorflow”安装了tensorflow。然后,我按照本网站上的所有说明进行操作: 当我尝试使用train.py时,收到以下错误消息: 回溯(最近一次呼叫最后一次): 文件“train.py”,第49行,在 从object_detection.builders导入数据集_builder 文件“/usr/local/lib/python3.6/dist packa

我正在尝试使用Tensorflow对象检测API来训练我自己的自定义对象检测器

我在谷歌计算引擎中使用“pip install tensorflow”安装了tensorflow。然后,我按照本网站上的所有说明进行操作:

当我尝试使用train.py时,收到以下错误消息:

回溯(最近一次呼叫最后一次): 文件“train.py”,第49行,在 从object_detection.builders导入数据集_builder 文件“/usr/local/lib/python3.6/dist packages/object\u detection-0.1->py3.6.egg/object\u detection/builders/dataset\u builder.py”,第27行,在 从object_detection.data_解码器导入tf_示例_解码器 文件“/usr/local/lib/python3.6/dist packages/object_detection-0.1-py3.6.egg/object_detection/data_decoders/tf_example_decoder.py”,第27行 slim\u示例\u解码器=tf.contrib.slim.tf示例\u解码器 AttributeError:模块“tensorflow”没有属性“contrib”

当我尝试学习tensorflow版本时,我也得到了不同的结果

python3-c'导入张量流作为tf;打印(tf.版本)':2.0.0-dev20190422

当我使用

pip3显示tensorflow:

名称:tensorflow 版本:1.13.1 摘要:TensorFlow是一个面向所有人的开源机器学习框架。 主页: 作者:谷歌公司。 作者电子邮件:opensource@google.com 许可证:Apache2.0 位置:/usr/local/lib/python3.6/dist-packages 要求:gast、astor、absl py、tensorflow估计器、keras预处理、grpcio、six、keras应用程序、轮子、numpy、tensorboard、protobuf、termcolor 要求:


我该怎么解决这个问题?我找不到有关此错误消息的任何信息,除了以下内容:

tf.contrib
已从tf中移出,启动tf 2.0 alpha。
请看这些tf 2.0发行说明
您可以使用
TF\u upgrade\u v2
脚本将TF 1.x代码升级到TF 2.x

我使用tensorflow 1.8来训练我的模型,现在没有问题。Tensorflow 2.0 alpha不适用于对象检测API

可能会对您有所帮助,它解释了如何实现
TPUStrategy
,这是TF2.0中
tf.contrib
的一个常用功能,如果
tf.contrib
不推荐使用,您可以通过以下方式实现相同的功能:

tf.config.experimental_connect_to_host('grpc://' + os.environ['COLAB_TPU_ADDR'])
resolver = tf.distribute.cluster_resolver.TPUClusterResolver('grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver) 

我使用谷歌colab来运行我的模型,在我使用内联tesorboard之前,一切都很完美。对于tensorboard内联,我遇到了同样的问题“模块'tensorflow'没有属性'contrib'”


初始化tensorboard后,它可以在使用setup.py(研究文件夹)重建和重新安装模型时运行培训。

如果您想使用tf.contrib,现在需要将源代码从github复制并粘贴到脚本/笔记本中。这很烦人,而且并不总是有效。但这是我找到的唯一解决办法。例如,如果您想使用tf.contrib.opt.AdamWOptimizer,您必须从这里复制并粘贴

我也在使用谷歌Colab。建议放

%tensorflow_version 1.x

在第一个(代码)单元中,它工作了

使用tensorflow的最新版本:
pip安装tensorflow==2.2.0

非常感谢,我阅读了tf 2.0发行说明,train.py仍在使用contrib,它仍然没有更新。我将使用model_main.py,所以我在一个类似的项目上使用model_main.py。。。但我仍然得到同样的错误。。。model_main包含最终引用tf.contrib的引用(从对象检测导入模型库->从对象检测导入评估工具->slim=tf.contrib.slim)。。。model_main引用model_lib,model_lib引用eval_util,eval_util引用tf.contrib.slim。。。我该如何解决这个问题?@怪诞-面对同样的问题有什么解决方案吗?我的解决方案是运行TF版本1.14,之后一切都正常。如果你得到了这个问题的解决方案,你能发布一个吗?我仍在努力。如果你能编写步骤就太好了。“%tensorflow_version 1.x”--在google colab顶部的单独单元格中运行此代码,你的旧代码将像charm@NeStack,在R中使用类似的东西吗?@SqueakyBeak我不是在R中编码,所以我不知道它有什么相似之处,对不起
tf.config.experimental_connect_to_host('grpc://' + os.environ['COLAB_TPU_ADDR'])
resolver = tf.distribute.cluster_resolver.TPUClusterResolver('grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver) 
%tensorflow_version 1.x