引言
自己曾经在大三时使用tensorflow搭建过一些nlp的模型,包括文本分类以及机器翻译等等,tensorflow有个很好的工具叫做tensorboard。如今开始用Pytorch做一些cv的项目,pytorch现在也可以支持tensorboard啦,现在我们就手把手的看看如何在pytorch中灵活运用Ta。
如何使用Tensorboard
自己的环境:
- 操作系统 linux
- python3.7
- pytorch 1.1.0
- Torchvision 0.3.0
- Tensorboard 1.8
安装方式可以使用pip安装或者从源码安装
pip install tensorboardX
git clone https://github.com/lanpa/tensorboardX && cd tensorboardX && python setup.py install
Tensorboard添加scalar
我们首先要引入Tensorboard,通过下面一行代码:
from tensorboardX import SummaryWriter
然后我们创建一个SummaryWriter类型
writer=SummaryWriter()
如果我们想记录模型中的loss或者Acc这些scaler,并生成一些损失函数曲线等等,我们可以通过下面的代码:
writer.add_scalar("test", losses.avg, epoch)
其中test
是我们要保存的文件名称,losses.avg
是我们要保存的参数,epoch
是模型训练轮数,这样我们就可以记录下模型的损失函数随着轮数的变化曲线,下图给个示例:
我们生成了tensorboard文件如何打开呢,可以通过下面一行代码。
tensorboard --logdir=<your_log_dir>
其中的 <your_log_dir>
既可以是单个 run 的路径,如上面 writer1 生成的 runs/exp;也可以是多个 run 的父目录,每个文件夹都代表了一次实验。
Tensorboard添加graph
我们知道了如何添加scalar后,那么添加graph就容易很多了。
writer.add_graph(model,(inputs,))
其中model
是我们写好的模型,inputs
是我们随便一个batch的输入即可
Tensorboard的一些坑
-
goodle打不开网址
解决方法:
那么就是我们刚才打开tensorboard命令行的问题。注意保存路径不能有有中文。同时注意路径不要写错。 -
model图无法显示
这是版本兼容的问题。
PyTorch 1.1.0及以前的版本,最好使用tensorboardX 1.7及以前,因为在1.8更新了add_graph方法导致其可能无法使用。add_graph方法用于可视化模型结构。
PyTorch 1.2.0及以上可以使用更新的tensorboardX,上述的方法实现更新实际上对较新版本的PyTorch有更好的支持。