我找不到与 Ubuntu 服务器相关的任何解决方案。我将使用来plot_model
from keras.utils import plot_model
保存.png模型的格式。但是,出现错误,提示“未找到 GraphViz 的可执行文件”。完整回溯如下:
Traceback (most recent call last):
File "/home/user/00_files/project/combined/kfold_loop.py", line 85, in <module>
plot_model(combined_net(), to_file = 'kfold_loop.png')
File "/usr/local/lib/python3.5/dist-packages/keras/utils/vis_utils.py", line 133, in plot_model
dot = model_to_dot(model, show_shapes, show_layer_names, rankdir)
File "/usr/local/lib/python3.5/dist-packages/keras/utils/vis_utils.py", line 55, in model_to_dot
_check_pydot()
File "/usr/local/lib/python3.5/dist-packages/keras/utils/vis_utils.py", line 26, in _check_pydot
pydot.Dot.create(pydot.Dot())
File "/home/user/.local/lib/python3.5/site-packages/pydot/__init__.py", line 1951, in create
'GraphViz\'s executables not found' )
pydot.InvocationException: GraphViz's executables not found
Process finished with exit code 1
我有0.13.2版本graphviz
和1.4.1pydot
Ubuntu 16.04 服务器上的版本。
还应该做什么?
仅供参考:我正在通过 Windows 10 上的 PyCharm 访问 Ubuntu 服务器。
答案1
似乎你误解了 python graphviz 包(https://pypi.org/project/graphviz/)使用 graphviz 应用程序(https://gitlab.com/graphviz/graphviz/)。为了使用pydot
或graphviz
(python 包),您需要 graphviz(应用程序)的一个工作副本。
如果你无权使用 sudo,我想到有两种方法
- 使用 conda(推荐)
- 手动编译 graphviz
但是,在没有访问权限的情况下手动编译 graphvizsudo
非常困难,因为需要很多依赖项。因此,我建议您使用 conda。
Conda 一步步操作:
- 下载 miniconda (https://docs.conda.io/en/latest/miniconda.html)
- 通过运行下载的脚本来安装 miniconda
- 创建新环境
conda create -n env_name python=3.5
- 安装 graphviz(应用程序)
conda install -n env_name graphviz
- 激活 conda 环境
conda activate env_name
- 使用 pip 安装其他 Python 依赖项
编辑
要在离线机器上安装 conda 环境,您可以在开发机器上本地安装 conda env,然后使用 conda pack 将其移动到服务器
- 在本地安装环境(在类似的操作系统上)
- 在本地机器上安装 conda pack
pip install conda-pack
- 打包环境
conda pack -n env_name
- 将创建的复制
env_name.tar.gz
到服务器 - 将档案解压到新文件夹(例如 env_name)
- 要激活环境,请运行
source env_name/bin/activate