我正在尝试使用Tensorflow Object-Detection-API训练自己的自定义对象检测器
我在Google计算引擎中使用“ pip install tensorflow”安装了tensorflow。然后,我按照该网站上的所有说明进行操作:https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html
当我尝试使用train.py时,出现以下错误消息:
回溯(最近通话最近): 在第49行的文件“ train.py”中 从object_detection.builders导入dataset_builder 在第27行中的文件“ /usr/local/lib/python3.6/dist-packages/object_detection-0.1->py3.6.egg/object_detection/builders/dataset_builder.py” 从object_detection.data_decoders导入tf_example_decoder 在第27行的“ /usr/local/lib/python3.6/dist-packages/object_detection-0.1-py3.6.egg/object_detection/data_decoders/tf_example_decoder.py”文件中 slim_example_decoder = tf.contrib.slim.tfexample_decoder AttributeError:模块“ tensorflow”没有属性“ contrib”
当我尝试学习tensorflow的版本时,我也得到了不同的结果。
python3 -c'将tensorflow导入为tf; print(tf。版本)':2.0.0-dev20190422
当我使用
pip3显示张量流:
名称:tensorflow 版本:1.13.1 简介:TensorFlow是面向所有人的开源机器学习框架。 主页:https://www.tensorflow.org/ 作者:Google Inc. 作者电子邮件:opensource@google.com 许可证:Apache 2.0 位置:/usr/local/lib/python3.6/dist-packages 需要:gast,astor,absl-py,tensorflow估计器,keras预处理,grpcio,6,keras应用,轮,numpy,tensorboard,protobuf,termcolor 必填者:
sudo python3 train.py --logtostderr --train_dir=training/ --
pipeline_config_path=training/ssd_inception_v2_coco.config
我该怎么做才能解决此问题?除了以下内容,我找不到与此错误消息有关的任何内容:tensorflow 'module' object has no attribute 'contrib'
答案 0 :(得分:2)
tf.contrib
已从TF 2.0 alpha开始移出TF。
看看这些tf 2.0发行说明https://github.com/tensorflow/tensorflow/releases/tag/v2.0.0-alpha0
您可以使用tf_upgrade_v2
脚本将TF 1.x代码升级到TF2.x。
https://www.tensorflow.org/alpha/guide/upgrade
答案 1 :(得分:2)
This issue可能对您有所帮助,它说明了如何实现TPUStrategy
,这是TF <2.0中tf.contrib
的流行功能。
因此,在TF 1.X中,您可以执行以下操作:
resolver = tf.contrib.cluster_resolver.TPUClusterResolver('grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.contrib.distribute.initialize_tpu_system(resolver)
strategy = tf.contrib.distribute.TPUStrategy(resolver)
在不推荐使用tf.contrib
的TF> 2.0中,您可以通过以下方式实现相同的目标:
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)
答案 2 :(得分:2)
答案 3 :(得分:0)
我使用tensorflow 1.8训练模型,目前没有问题。 Tensorflow 2.0 alpha不适用于对象检测API
答案 4 :(得分:0)
我使用google colab来运行我的模型,直到我使用嵌入式tesorboard为止,一切都很完美。使用tensorboard inline,我遇到了同样的问题:“模块'tensorflow'没有属性'contrib'”。
初始化张量板后,使用setup.py(research文件夹)重建并重新安装模型时,便可以进行训练。
答案 5 :(得分:0)
如果要使用tf.contrib,现在需要从github复制源代码并将其粘贴到脚本/笔记本中。这很烦人,而且并不总是有效。但这是我发现的唯一解决方法。例如,如果要使用tf.contrib.opt.AdamWOptimizer,则必须从此处复制和粘贴。 https://github.com/tensorflow/tensorflow/blob/590d6eef7e91a6a7392c8ffffb7b58f2e0c8bc6b/tensorflow/contrib/opt/python/training/weight_decay_optimizers.py#L32
答案 6 :(得分:0)
使用最新版本的tensorflow:pip install tensorflow==2.2.0