pytorch的tensorboard显示遇到的坑

pytorch的tensorboard显示遇到的坑

  • 此文中记录使用tensorboard显示pytorch的一些坑
    • 1. 需要搭配安装的package
    • 2. pytorch的安装
    • 3. 使用add_graph()函数传递给model的输入数量不对
    • 4. cudart64_100.dll not found
    • 5. pillow版本与pytorchvision版本不匹配

此文中记录使用tensorboard显示pytorch的一些坑

按照pytorch官方的教程遇到了无数的坑,特记录如下,方便日后查阅学习。因为是通过回忆记录,所以没有描述具体细节。

最终运行环境如下:
python 3.7.6
pytorch 1.2.0
cudatoolkit 10.0.130
tensorflow-gpu 2.0.0
tensorboard 2.0.2
tensorboardx 2.0

1. 需要搭配安装的package

官方教程上导入tensorboard的方法为:from torch.utils.tensorboard import SummaryWriter
但是会报错:ImportError: TensorBoard logging requires TensorBoard with Python summary writer installed. This should be available in 1.14 or above.
但这个时候你去检查tensorboard的版本很有可能是高于1.14的,解决办法为使用tensorboardX:
pytorch以外,还需要同时安装tensorboardX, tensorflow-gpu(cpu版本也不行),tensorboard,conda安装或者pip安装都可以

2. pytorch的安装

通过pytorch官网的命令安装安装up to date版本的torch一直报错,安装了old version的torch:
‘conda install pytorch==(delete me and parentheses)1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch’
具体报错为使用writer.add_graph()命令后,graph显示为屏幕右下角的两个方块(长方形)。
报错原因:版本匹配问题,最开始使用的版本为 pytorch 1.5.0

3. 使用add_graph()函数传递给model的输入数量不对

具体报错:TypeError: forward() takes 2 positional arguments but 5 were given
报错命令:writer.add_graph(net, images)
修改为:writer.add_graph(net, (images,))
报错原因:不加括号的话,模型会把一个batch的tensor当作batch长度个tensor…

4. cudart64_100.dll not found

使用最终版本后该问题已不再出现。
报错原因:在cuda10.2的library/bin目录下找不到文件cudart64_100.dll
解决措施:csdn上有博主分享了cudart64_100.dll的云盘链接,下载后放到上述目录下即可。

5. pillow版本与pytorchvision版本不匹配

报错信息:
File “F:\ProgramData\Anaconda3\lib\site-packages\torchvision\transforms\functional.py”, line 5, in
from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION
ImportError: cannot import name ‘PILLOW_VERSION’ from ‘PIL’ (F:\ProgramData\Anaconda3\lib\site-packages\PIL_init_.py)
报错原因:
pytorchvision应该是只兼容pillow 6.x以下版本,因为根据source code和错误tracing,pillow 7.0.0中不再定义PILLOW_VERSION,但pytorchvision需要导入PILLOW_VERSION。
解决措施:
在"F:\ProgramData\Anaconda3\lib\site-packages\torchvision\transforms\functional.py"文件中删掉from PIL import PILLOW_VERSION,并添加PILLOW_VERSION = 6(之后遇到其它bug,可能还需要再次修改)

你可能感兴趣的:(pytorch的tensorboard显示遇到的坑)