Ich verwende Anaconda Python 2.7 unter Windows 10
Ich hatte vor, Keras-Visualisierung zu machen, also öffnete ich den Anaconda-Befehl Prompt (während der Spyder geöffnet war) und installierte Graphviz und pydot. Wenn ich jetzt versuche, folgendes auszuführen:
from keras.models import Sequential
oder irgendeine Art von "aus Keras". Ich bekomme den Fehler:
ImportError: cannot import name gof
Ich habe Keras, Graphviz und pydot deinstalliert und neu installiert. Ich verwende die Entwicklungsversion von Theano. Ich kann keine Korrektur finden.
P.S
Wenn ich graphviz und pydot deinstalliere, funktionieren die Keras wieder
EDIT
Nach der Deinstallation von Anaconda und der erneuten Installation von theano, keras, graphviz und pydot erhalte ich nun den folgenden Fehler:
from keras.utils.visualize_util import plot
Using Theano backend.
Using gpu device 0: GeForce GTX 970M (CNMeM is disabled, cuDNN not available)
Traceback (most recent call last):
File "<ipython-input-1-65016ddab3cd>", line 1, in <module>
from keras.utils.visualize_util import plot
File "C:\Anaconda2\lib\site-packages\keras\utils\visualize_util.py", line 8, in <module>
raise RuntimeError('Failed to import pydot. You must install pydot'
RuntimeError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.
Ich habe pip install graphviz
und pip install git+https://github.com/nlhepler/pydot.git
verwendet
Die Fehlermeldung ist etwas irreführend, wie Sie hier sehen können. Das Problem ist, dass Graphviz nicht installiert ist.
Sie erwähnen jedoch, dass graphviz mit pip installiert wurde. Dies ist auch irreführend, da dieses Paket nur ein Python-Wrapper ist und die Graphviz-Binaries separat installiert werden müssen, damit der Python-Wrapper funktioniert.
Ich hatte das gleiche Problem. Ich verwende Anaconda Python unter Ubuntu. Aber es scheint, dass Keras den Python des Systems verwendet, nicht den Anaconda-Python. Anfangs habe ich pydot und graphviz mit conda installiert. Als ich pydot und graphviz im Python des Systems (mit/usr/bin/pip install pydot) installierte, funktionierte es einwandfrei.
Wenn Sie eine Anaconda-Umgebung verwenden, sollten Sie pydotplus
und graphviz
über conda install
installieren.
conda install graphviz
conda install pydotplus
Hinweis: Sie sollten Ihre Keras besser auf die neueste Version (2.0.9+) aktualisieren, da sie automatisch prüfen und auswählen kann, welche von pydotplus
, pydot-ng
, pydot
verwendet werden soll. pydot-ng
wurde lange Zeit nicht gepflegt und unterstützt nur py3.4- und py2.7.
Was ich getan habe, ist gefolgt.
import keras
import pydotplus
from keras.utils.vis_utils import model_to_dot
keras.utils.vis_utils.pydot = pydot
plot_model(your_model_name, to_file='model.png')
Das hat bei mir funktioniert. Auf dem Mac Anaconda Python = 3.6.8
Keras 2.0.6 sucht nach pydot-ng (besser gewartet) und greift dann auf pydot zurück, wenn es nicht gefunden wird. Ich habe dieses Problem durch Installieren von pydot-ng von source behoben.
Installieren Sie graphviz by brew in osx brew install graphviz
. Für Ubuntu verwenden Sie apt-get install graphviz
. Sie müssen graphviz by pip nicht installieren.
Ich hatte ein ähnliches Problem mit meinem Keras (ohne Anakonda). Ich habe mein Problem auf diese Weise gelöst
Sudo pip install pydot
Sudo pip install graphviz
Sudo add-apt-repository ppa:gviz-adm/graphviz-dev
Sudo apt-get update
Sudo apt-get install graphviz-dev
Für Anaconda auf dem Mac:
So installieren Sie dieses Paket mit Conda-Run:
conda install -c anaconda graphviz
Installieren Sie graphviz
im System. Laden Sie das Paket von hier oder auf dem Mac herunter:
brew install graphviz
Installieren Sie python pydot-ng und graphviz wrapper.
pip install pydot-ng graphviz
conda install -c anaconda pydot-ng #Anaconda user
Verwenden Sie pydot-ng
in Ihrem Code
import pydot_ng as pydot
Wenn Keras-Visualisierungsdienstprogramme weiterhin pydot verwenden, versuchen Sie, import pydot
in import pydot_ng as pydot
in visualize_util.py
zu ändern.
Das Folgende funktioniert in einem Jupyter-Notizbuch, das in einem Docker-Container jupyter/tensorflow-notebook
Ausgeführt wird.
!conda install -y graphviz pydotplus
import pydotplus
import keras.utils
keras.utils.vis_utils.pydot = pydotplus
keras.utils.plot_model(your_model_name, to_file='model.png', show_shapes=True)
Sie müssen Keras anweisen, pydotplus zu verwenden
1) Conda install graphviz
2) pip install graphviz
3) pip install pydot
dann:
import os
os.environ["PATH"] += os.pathsep + AppData\\Local\\Continuum\\anaconda3\\envs\\tensorflow\\Library\\bin\\graphviz'