Bazel& Tensorflow:初始v3再训练:AttributeError:'int'对象属性'__doc__'是只读的

时间:2017-08-21 11:39:29

标签: python tensorflow neural-network bazel pre-trained-model

我目前正在按照本教程重新训练Inception v3神经网络的顶层: https://www.youtube.com/watch?v=m2D02eZTB4s https://www.tensorflow.org/tutorials/image_retraining

我已经设置了一个运行Ubuntu 14.04.5 LTS 64bit的VirtualBox

python 2.7.6

tensorflow 1.3.0

bazel build label:0.5.3

但是,当我使用命令

bazel-bin/tensorflow/examples/image_retraining/retrain --image_dir /media/myImageDir

然后我的过程与教程不同。发生两个导入错误,可以通过安装软件包轻松解决。

File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/ops.py", line 28, in <module>
    from autograd import core as ag_core
ImportError: No module named autograd

File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/variable_scope.py", line 24, in <module>
    import enum  # pylint: disable=g-bad-import-order
ImportError: No module named enum

安装autograd和enum后,尝试执行再次重新训练的命令时,会出现以下错误:

Traceback (most recent call last):
File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain.py", line 108, in <module>
import tensorflow as tf
File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import *
File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/__init__.py", line 63, in <module>
from tensorflow.python.framework.framework_lib import *
File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/framework_lib.py", line 102, in <module>
from tensorflow.python.framework.importer import import_graph_def
File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/importer.py", line 30, in <module>
from tensorflow.python.framework import function
File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/function.py", line 34, in <module>
from tensorflow.python.ops import variable_scope as vs
File "/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/variable_scope.py", line 191, in <module>
"""
AttributeError: 'int' object attribute '__doc__' is read-only

文件“/home/tensorflow/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/variable_scope.py”的第191行如下:

AUTO_REUSE.__doc__ = """
When passed in as the value for the `reuse` flag, AUTO_REUSE indicates that
get_variable() should create the requested variable if it doesn't exist or, if
it does exist, simply return it.
"""

现在我真的不想干涉这段代码,因为它不是我编写的自定义代码。我怀疑还有另一个问题,但我绝对不知道它可能是什么。我希望这里有人有类似的问题和/或可以给我任何建议。

2 个答案:

答案 0 :(得分:2)

我也遇到过这种情况,我注意到最近在张量流中有一个issue。解决方案有以下解决方法:

  • 卸载枚举,如果您已经安装了它:sudo pip remove enum
  • 安装此兼容版枚举:sudo apt-get install python-enum34
  • 再试一次。

答案 1 :(得分:-2)

我通过残酷地纠正源代码来解决这个问题!!!