2016-07-06 4 views
1

Ich versuche, über die TensorFlow for Poets Codelab auf OS X El Capitan, Python 2.7 (über HomeBrew) und TensorFlow 0.9.0 zu gehen. Anstatt Docker wie angewiesen zu verwenden, habe ich TensorFlow mit pip installiert und den tensorflow repo in meinen Arbeitsordner geklont.Tensorflow: ImportError für graph_util von tensorflow.python.framework

Um re-train the network, betreibe ich den folgenden Befehl ein:

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 

, die mit dem folgenden Fehler fehl:

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 

In meiner Python-Shell, ich bin in der Lage, dass TensorFlow zu überprüfen, ob die korrekte Installation von Importieren tensorflow, tensor_shape von tensorflow.python.framework und gfile von tensorflow.python.platform (wie in der retraining script). Der Versuch, graph_util Ergebnisse in dem gleichen Fehler zu importieren:

>>> 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 

Was ist der Grund dafür sein könnte?

Bearbeiten: Geöffnet issue #3203 auf dem Tensorflow Repo. Scheint so, als wäre das ein Fehler.

Hinweis: This older question fragen nach den gleichen Fehlern, sondern bezieht sie eine andere TensorFlow Bibliothek mit einer Umschulung Skript, das graph_util von tensorflow.python.client zu importieren versucht (siehe auch this commit zur TensorFlow Quelle).

+0

das bedeutet, dass die 'graph_util' Methode ist nicht definiert d unter 'tensorflow.python.framework'. –

+0

@ super_cr7 'graph_util' es ist keine Methode, es ist eine Datei, die mehrere Methoden definiert; und es ist [dort im Quellcode] (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/framework/graph_util.py). Ich kann keine [Änderungen sehen, die 'graph_util' seit der Version 0.9.0 betreffen] (https://github.com/tensorflow/tensorflow/compare/v0.9.0...r0.9) (das ist die Version, die ich installiert habe). – mbaytas

+1

Ich entschuldige mich für meine Naivität. Es ist besser, als Problem im Github-Repo zu fragen oder auf https://stats.stackexchange.com und anderen verwandten Communities nachzufragen. –

Antwort

3

Da es sich um die Nummer 1 Google-Ergebnis für mich, wenn ich für dieses Problem gesucht, ich werde eine Abhilfe vorzuschlagen, die funktioniert (bis tensorflow/Beispiele aktualisiert werden):

In examples/image_retraining/retrain.py

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

Im Tensorflow-Master ist jetzt ein Commit vorhanden, um graph_util vom Client zum Framework zu verschieben. Daher sollte diese Problemumgehung in naher Zukunft nicht erforderlich sein.

2

Ich war mit dem gleichen Problem konfrontiert. Sobald ich das tat

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

dieses unten erwähnte Problem war weg.

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

und neue kam auf.

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' 

diese zur Lösung des gesamten Inhalt retain.py Datei (von Master-Zweig) mit retain.py Datei (von r0.9 Zweig) ersetzt.

0

begegnete ich auch das gleiche Problem wie bei Ihnen, und ich verwenden, um die folgenden zwei Schritte, um das Problem zu lösen:

  1. aktiviert TensorFlow und während folgender Schritte sowie Lauf Neuabstimmungsoperation aktiv bleiben.py: source ~/tensorflow/bin/aktivieren # bash, sh, ksh oder zsh
  2. Upgrade-TensorFlow Version von diesen Schritten:

    (tensorflow) $ easy_install -U pip

    (tensorflow) pip $ --upgrade tensorflow # installieren für Python 2,7

Referenz tensorflow offiziellen Link: https://www.tensorflow.org/install/install_linux

Verwandte Themen