社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

PyTorch深度学习训练可视化工具visdom

小白学视觉 • 4 年前 • 547 次点击  

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

     在进行深度学习实验时,能够可视化地对训练过程和结果进行展示是非常有必要的。除了Torch版本的TensorBoard工具TensorBoardX之外,Torch官方也提供了一款非常好用的可视化神器——visdom。visdom是一款用于创建、组织和共享实时大量训练数据可视化的灵活工具。

     深度学习模型训练通常放在远程的服务器上,服务器上训练的一个问题就在于不能方便地对训练进行可视化,相较于TensorFlow的可视化工具TensorBoard,visdom则是对应于PyTorch的可视化工具。

安装与启动

     直接通过pip install visdom即可完成安装,之后在终端输入如下命令即可启动visdom服务:

python -m visdom.server 

     启动服务后输入本地或者远程地址,端口号8097,即可打开visdom主页。

主要元素

     visdom界面简单,主要构成元素包括窗口(Windows)、环境(Environments)、状态(State)、过滤(Filter)、视图(Views)等。

     环境:用于对可视化空间进行分区,比如在对训练进行可视化的时候我们可以在一个环境里对loss进行可视化,在另一个环境下对训练的输入输出进行可视化。

     状态:visdom会自动缓存你创建的可视化内容,当页面关闭之后,重新加载便可恢复这些内容。

     过滤:可用于筛选可视化窗口,快速查找。

     视图:可以快速地对可视化窗口进行排列和管理。

应用示例

     visdom将可以进行可视化的对象都放在基础模块中,包括单/多张图像、文本、语音、视频、svg矢量图、属性网格、matplotlib绘图对象、序列化状态对象等。基础图形由plotly提供,主要包括散点图、折线图、热图、茎叶图、柱形图、箱线图、表面图、等高线图、网格图等。

     以matplotlib绘图对象为例进行展示。

import


    
 matplotlib.pyplot as pltfrom visdom import Visdomvis = Visdom()plt.plot(range(100))vis.matplot(plt)

     visdom中显示如下:

     具体到深度学习训练时,我们可以在torch训练代码下插入visdom的可视化模块:

if args.steps_plot > 0 and step % args.steps_plot == 0:    image = inputs[0].cpu().data    vis.image(image,f'input (epoch: {epoch}, step: {step})')    vis.image(outputs[0].cpu().max(0)[1].data, f'output (epoch: {epoch}, step: {step})')    vis.image(targets[0].cpu().data, f'target (epoch: {epoch}, step: {step})')    vis.image(loss, f'loss (epoch: {epoch}, step: {step})')

     将上述模块插入到VOC 2012语义分割训练中,效果如下:

     也可以监控训练过程中的loss变化:

     visdom为PyTorch而生,总体来说是一款优化的深度学习训练可视化工具。

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇




下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/137420