Keras: "RuntimeError: не удалось импортировать pydot". после установки graphviz и pydot
Я использую Anaconda Python 2.7 на окнах 10
Я планировал визуализацию Keras так (пока был открыт spyder). Я открыл командную строку Anaconda и установил pipviz и pydot. Теперь, когда я попробую запустить следующее:
from keras.models import Sequential
или любого рода "от кера"., Я получаю сообщение об ошибке:
ImportError: cannot import name gof
Я удалил и переустановил Keras, Graphviz и pydot. Я использую версию развития theano. Я не могу найти исправление.
P.S
Если я удалю graphviz и pydot, keras снова работает
ИЗМЕНИТЬ
После удаления anaconda и переустановки, включая anano, keras, graphviz и pydot, я получаю следующую ошибку:
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.
Я использовал pip install graphviz
и pip install git+https://github.com/nlhepler/pydot.git
Ответы
Ответ 1
Сообщение об ошибке немного вводит в заблуждение, как вы можете видеть здесь. Проблема в том, что graphviz не установлен.
Но вы упомянули, что graphviz был установлен с помощью pip. Это также вводит в заблуждение, так как этот пакет graphviz - это просто оболочка python, а бинарные файлы graphviz должны быть установлены отдельно для работы оболочки python.
Ответ 2
Если вы используете среду Anaconda, лучше установить pydotplus
и graphviz
через conda install
.
conda install graphviz
conda install pydotplus
Примечание:
Вам лучше обновить Keras до последней версии (2.0.9+), он может автоматически проверять и выбирать, какой из pydotplus
, pydot-ng
, pydot
использовать. pydot-ng
долгое время оставался ненадолго, и он поддерживает только py3.4- и py2.7.
Ответ 3
У меня была та же проблема. Я использую python Anaconda на Ubuntu. но он швы, что Keras использует системный питон, а не питон Anaconda. Первоначально я установил pydot и graphviz, используя conda. Когда я установил pydot и graphviz в системный python (используя/usr/bin/pip install pydot), он работал нормально.
Ответ 4
Keras 2.0.6 ищет pydot-ng (лучше поддерживается), а затем, если он не найден, возвращается на pydot. Я решил эту проблему, установив pydot-ng из source.
Ответ 5
То, что я сделал, последовало
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')
Это сработало для меня. На Mac Anaconda python = 3.6.8
Ответ 6
Установите graphviz с помощью brew в osx brew install graphviz
, для использования ubuntu apt-get install graphviz
не нужно устанавливать graphviz by pip.
Ответ 7
У меня была аналогичная проблема с моим Keras (без анаконды). Я решил эту проблему, используя этот способ.
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
Ответ 8
Для Anaconda на Mac:
Чтобы установить этот пакет с запуском conda:
conda install -c anaconda graphviz
Ответ 9
-
Установите graphviz
в систему. Загрузите пакет отсюда или на Mac:
brew install graphviz
-
Установите оболочку python pydot-ng и graphviz.
pip install pydot-ng graphviz
conda install -c anaconda pydot-ng #Anaconda user
-
Использовать pydot-ng
в коде
import pydot_ng as pydot
-
Если Keras visualization utils все еще использует pydot, попробуйте изменить import pydot
чтобы import pydot_ng as pydot
в visualize_util.py
Ответ 10
1) Conda install graphviz
2) pip install graphviz
3) pip установить pydot
затем:
import os os.environ["PATH"] += os.pathsep + AppData\\Local\\Continuum\\anaconda3\\envs\\tensorflow\\Library\\bin\\graphviz'
Ответ 11
Нижеследующее работает в блокноте jupyter, работающем в jupyter/tensorflow-notebook
.
!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)
Вы должны сказать keras использовать pydotplus