2016-07-06 3 views
1

Я пытаюсь пройти через TensorFlow for Poets Codelab на OS X El Capitan, Python 2.7 (через HomeBrew) и TensorFlow 0.9.0. Вместо того, чтобы использовать Docker в соответствии с инструкциями, я установил TensorFlow с пипсом, и я клонировал tensorflow repo в свою рабочую папку.Tensorflow: ImportError для graph_util from tensorflow.python.framework

Для re-train the network я выполнить следующую команду:

python tensorflow/tensorflow/examples/image_retraining/retrain.py \ 
--bottleneck_dir=/tf_files/bottlenecks \ 
--how_many_training_steps 500 \ 
--model_dir=/tf_files/inception \ 
--output_graph=/tf_files/retrained_graph.pb \ 
--output_labels=/tf_files/retrained_labels.txt \ 
--image_dir /tf_files/flower_photos 

Который не может со следующей ошибкой:

Traceback (most recent call last): 
    File "tensorflow/tensorflow/examples/image_retraining/retrain.py", line 80, in <module> 
    from tensorflow.python.framework import graph_util 
ImportError: cannot import name graph_util 

В моей оболочке Python, я могу проверить, что TensorFlow правильность установки импорт tensorflow, tensor_shape от tensorflow.python.framework и gfile от tensorflow.python.platform (как в retraining script). Попытка импортировать graph_util результатов в той же ошибки:

>>> import tensorflow 
# Success 
>>> from tensorflow.python.framework import tensor_shape 
# Success 
>>> from tensorflow.python.platform import gfile 
# Success 
>>> from tensorflow.python.framework import graph_util 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: cannot import name graph_util 

Что может быть причиной этого?

Редактировать: Открыт issue #3203 на repo. Похоже, это ошибка.

Примечание: This older question спрашивает о тех же ошибках, но ссылается на другую библиотеку TensorFlow со скриптом переобучения, который пытается импортировать graph_util из tensorflow.python.client (смотрите также this commit к источнику TensorFlow).

+0

Это означает, что 'graph_util' метод не определен d под 'tensorflow.python.framework'. –

+0

@ super_cr7 'graph_util' это не метод, это файл, который определяет несколько методов; и он [находится в исходном коде] (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/framework/graph_util.py). Я не вижу никаких изменений, которые повлияли бы на 'graph_util' с версии 0.9.0] (https://github.com/tensorflow/tensorflow/compare/v0.9.0...r0.9) (это версия, которую я установил). – mbaytas

+1

Я извиняюсь за свою наивность. Лучше спросить как проблему в репозитории github, или спросить на https://stats.stackexchange.com и других связанных сообществах. –

ответ

3

Так как это был результат Google номер 1 для меня, когда я искал эту проблему, я предложить обходной путь, который работает (пока tensorflow/примеры не обновляются):

В examples/image_retraining/retrain.py

CHANGE 
from `tensorflow.python.framework import graph_util` 
TO 
from `tensorflow.python.client import graph_util` 

Теперь в master-устройстве tensorflow присутствует фиксация для перемещения graph_util от клиента к фреймворку, поэтому это обходное решение не требуется в ближайшем будущем.

2

Я столкнулся с той же проблемой. Как только я это сделал

replace from `tensorflow.python.framework import graph_util` 
with  from `tensorflow.python.client import graph_util` 

это ниже упомянутый вопрос не прошло.

File "retrain.py", line 75, in <module> 
from tensorflow.python.framework import graph_util 
ImportError: cannot import name graph_util 

и новый один придумал.

File "retrain.py", line 1042, in <module> 
    tf.app.run(main=main, argv=[sys.argv[0]] + unparsed) 
TypeError: run() got an unexpected keyword argument 'argv' 

Чтобы решить эту проблему, я заменил все содержимое retain.py файла (от главного филиала) с retain.py файла (от r0.9 филиала).

0

Я также столкнулся с той же проблемой, как у вас, и я использовал следующие два шага, чтобы решить эту проблему:

  1. Activate TensorFlow и остаются активными в течение следующих шагов, а также проточная повторную.ру: источник ~/tensorflow/бен/активировать # Баш, ш, КШ или ЗШ
  2. Обновление версии TensorFlow этими шагами:

    (tensorflow) $ easy_install -U семечковые

    (tensorflow) $ пипа установить --upgrade tensorflow # для Python 2.7

ссылки tensorflow официальной ссылки: https://www.tensorflow.org/install/install_linux