无Root权限 使用PyTorchViz对模型做可视化
安装 GraphViz 和 PyTorchViz
PyTorchViz GitHub链接
GraphViz链接
安装 GraphViz
由于我们没有root权限,因此只能使用源码安装,到GraphViz链接中找到Source Code Packages,下载下来解压,之后:
./configure --prefix=/path/to/graphviz
make
make install
之后加入path
中
# graphviz
export PATH=/path/to/graphviz/bin:$PATH
最后source
一下
source ~/.bashrc
注:如果你有root,直接按照下载页的提示 GraphViz链接 sudo apt install graphviz
就成
安装 PyTorchViz
pip install torchviz
验证
import graphviz
import torchviz
运行不报错即可
可视化
from torchviz import make_dot
model = nn.Sequential()
model.add_module('W0', nn.Linear(8, 16))
model.add_module('tanh', nn.Tanh())
model.add_module('W1', nn.Linear(16, 1))
x = torch.randn(1, 8)
y = model(x)
g = make_dot(y.mean(), params=dict(model.named_parameters()))
g.render('test_model',view=False, format='dot') # 如果你使用的是ipynb则不需要这行,如果你需要保存图像则需要加上这行
之后会在代码运行目录下出现一个test_model.dot
,之后就可以使用dot
把.dot
转为jpg
或者其他你需要的格式
dot -Tjpg test_model.dot > test_model.jpg
可能遇到的报错
格式不支持
如果你不加format='dot'
,即使用如下代码:
from torchviz import make_dot
model = nn.Sequential()
model.add_module('W0', nn.Linear(8, 16))
model.add_module('tanh', nn.Tanh())
model.add_module('W1', nn.Linear(16, 1))
x = torch.randn(1, 8)
y = model(x)
g = make_dot(y.mean(), params=dict(model.named_parameters()))
g.render('test_model',view=False) # 这里没有控制format # 如果你使用的是ipynb则不需要这行,如果你需要保存图像则需要加上这行
有可能会出现以下错误:
Format: "pdf" not recognized. Use one of: canon cmap cmapx cmapx_np dot dot_json eps fig gv imap imap_np ismap json json0 mp pic plain plain-ext pov ps ps2 svg svgz tk vdx vml vmlz xdot xdot1.2 xdot1.4 xdot_json
这时候麻烦一点,需要你加上format='dot'
,先生成.dot
再转为jpg
即可