keras plot_model говорит мне установить pydot

Я использую python 3.6.3 на компьютере с Windows 10. Я установил pydot и graphviz, используя установку pip через:

    py -m pip install pydot
    py -m pip install graphviz

Я также зашел на сайт graphviz, скачал и установил версию для Windows здесь: http://www.graphviz.org/Download_windows.php, который по умолчанию устанавливается в программные файлы (x86). Но когда я иду строить свою модель в keras, я все еще получаю сообщение об ошибке, говорящее, что мне нужно установить pydot и graphviz и что импорт не удался. я могу сделать

    import pydot
    import graphviz

на моей консоли Python все в порядке, они не выдают ошибок. Что еще я должен сделать, чтобы иметь возможность построить график моей нейронной сети?


person enumaris    schedule 08.11.2017    source источник
comment
Попробуйте: py -m pip3 install pydot py -m pip3 install graphviz   -  person Marcin Możejko    schedule 09.11.2017
comment
У меня нет pip3. Но обычно, если я просто использую py -m pip, который уже для python 3 cus, чтобы перейти к python 2, мне нужно выполнить py -2.7 -m pip install... и т. д. Кроме того, я протестировал операторы импорта с помощью Python 3, и он работает.   -  person enumaris    schedule 09.11.2017


Ответы (4)


Пути к установленным исполняемым файлам GraphViz (dot, neato и т. д.) должны быть указаны в PATH переменная среды, чтобы pydot мог их найти. pydot использовался для поиска этих исполняемых файлов в более ранних версиях, но больше не используется.

Также:

  1. pydot — это пакет Python.
  2. GraphViz — это набор инструментов написано на C для вычисления макетов графов
  3. graphviz — это пакет Python, совершенно не связанный с pydot. Эти два пакета Python никак не взаимодействуют друг с другом. Достаточно установить один из них (вместе с GraphViz).

Смотрите также:

и ссылки оттуда.

person Ioannis Filippidis    schedule 09.11.2017
comment
Значит ли это, что мне нужно зайти в исходный код pydot и вручную добавить путь к graphviz? - person enumaris; 10.11.2017
comment
Я понял это, извините, я никогда раньше не редактировал свою переменную PATH в Windows. - person enumaris; 10.11.2017
comment
В случае, если пользователь вызывает pydot напрямую (не через keras или другого посредника), промежуточным решением является передача пути через аргумент prog методов Dot.write_* или Dot.create_* (см. эту строку документации). Однако такое решение не рекомендуется. Лучше задать конфигурацию среды и скопировать ее при переустановке ОС. В системах *nix это обычно делается в ~/.bashrc (рекомендую закоммитить этот конфигурационный файл в репозиторий git). - person Ioannis Filippidis; 10.11.2017
comment
Просмотрите этот ответ с полной процедурой - › stackoverflow.com/a/50025414/6126603 - person sync11; 25.04.2018
comment
@dataLeo keras >= 2.1.6 обновлен до последних версий pydot: github.com/keras-team/ керас/тянуть/9904 - person Ioannis Filippidis; 25.04.2018
comment
@loannis Спасибо за ответ. Мой ответ нацелен на версию keras 2.1.5. - person sync11; 26.04.2018

В дополнение к ответу @Ioannis вам необходимо установить исполняемые файлы GraphViz через conda (conda install GraphViz).

В моем случае после установки GraphViz я попытался использовать последнюю версию pydot (pip install pydot), и ошибка была устранена.

person Md. Hishamur Rahman    schedule 11.11.2019

Чтобы завершить решение @dataLeo, пользователи Python 3 могут использовать пакет pydotplus вместо пакета pydot-ng. Подвести итоги:

  1. установите pydot+graphviz и pydotplus с помощью команд «conda install pydot» и «conda install -c conda-forge pydotplus».
  2. Перейдите к файлу vis_utils.py и измените строку 11 с import pydot на import pydotplus as pydot.

PS: вы можете найти файл vis_utils.py, проверив справку по команде plot_model в консоли ipython, то есть после from keras.utils import plot_model введите ??plot_model в консоли ipython.

Протестировано на Windows 10-64 бит с Anaconda python-3.6

person tu_curious    schedule 21.03.2019

Я решил эту проблему, установив пакеты с помощью:

conda install graphviz
conda install pydot
conda install pydotplus
person Baya Lina    schedule 22.06.2021