visdom可视化pytorch训练过程
一、前言
在深度学习模型训练的过程中,常常需要实时监听并可视化一些数据,如损失值loss,正确率acc等。在Tensorflow中,最常使用的工具非Tensorboard莫属;在Pytorch中,也有类似的TensorboardX,但据说其在张量数据加载的效率方面不如visdom。visdom是FaceBook开发的一款可视化工具,其实质是一款在网页端的web服务器,对Pytorch的支持较好。
二、安装和启动
visdom的安装比较简单,可以直接使用pip命令。
# visdom 安装指令
pip install visdom
执行安装命令后,可以执行以下命令启动visdom。
# 启动 visdom web服务器
python -m visdom.server
若安装成功,则会返回一个网页地址;若报错,则安装失败,可以自行去github上下载源码安装。

将网址复制后在浏览器中打开,就可以看到visdom的主界面。

三、简单使用
这里以监听损失值loss数据,准确率acc数据及可视化图像等方面简要介绍visdom的使用。
3.1 监听单一数据loss
在模型训练过程中,loss是最常监听的数据,这里就以loss的监听为例,使用visdom可视化loss的变化过程。为了使代码更加简洁,这里以for循环代替模型逐轮训练的过程,loss值则在每个循环内部随机产生。
from visdom import Visdom
import numpy as np
import time # 将窗口类实例化
viz = Visdom() # 创建窗口并初始化
viz.line([0.], [0], win='train_loss', opts=dict(title='train_loss')) for global_steps in range(10):
# 随机获取loss值
loss = 0.2 * np.random.randn() + 1
# 更新窗口图像
viz.line([loss], [global_steps], win='train_loss', update='append')
time.sleep(0.5)

3.2 同时监听loss和acc
from visdom import Visdom
import numpy as np
import time # 将窗口类实例化
viz = Visdom() # 创建窗口并初始化
viz.line([[0.,0.]], [0], win='train', opts=dict(title='loss&acc', legend=['loss', 'acc']))
for global_steps in range(10):
# 随机获取loss和acc
loss = 0.1 * np.random.randn() + 1
acc = 0.1 * np.random.randn() + 0.5
# 更新窗口图像
viz.line([[loss, acc]], [global_steps], win='train', update='append')
# 延时0.5s
time.sleep(0.5)

3.3 可视化图像
在处理图像任务时,还可以用visdom对图像进行可视化。
from visdom import Visdom
import numpy as np
import cv2
import torch # 使用opencv读取数据
img = cv2.imread('pkq.jpg')
# opencv按照BGR读取,而visdom默认按照RGB显示,因此要进行通道转换
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# visdom类似于pytorch中的卷积模型,接收的数据都要求通道数在前
img = np.transpose(img, (2, 0, 1))
img = torch.from_numpy(img)
# 可视化图像
viz.image(img, win='pkq')

visdom可以同时在主面板中打开多个窗口,执行上面3个可视化程序后,主面板如下所示:

visdom可视化pytorch训练过程的更多相关文章
- visdom使用监视训练过程的应用,viz.line参数说明
visdom使用监视训练过程的应用,viz.line参数说明 待办 viz = Visdom() viz.line([0.], [0.], win='train_loss', opts=dict(ti ...
- [深度学习] pytorch学习笔记(3)(visdom可视化、正则化、动量、学习率衰减、BN)
一.visdom可视化工具 安装:pip install visdom 启动:命令行直接运行visdom 打开WEB:在浏览器使用http://localhost:8097打开visdom界面 二.使 ...
- 从零搭建Pytorch模型教程(四)编写训练过程--参数解析
前言 训练过程主要是指编写train.py文件,其中包括参数的解析.训练日志的配置.设置随机数种子.classdataset的初始化.网络的初始化.学习率的设置.损失函数的设置.优化方式的设置. ...
- tensorflow笔记:模型的保存与训练过程可视化
tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...
- tensorflow:模型的保存和训练过程可视化
在使用tf来训练模型的时候,难免会出现中断的情况.这时候自然就希望能够将辛辛苦苦得到的中间参数保留下来,不然下次又要重新开始. 保存模型的方法: #之前是各种构建模型graph的操作(矩阵相乘,sig ...
- 吴裕雄 python 神经网络——TensorFlow 训练过程的可视化 TensorBoard的应用
#训练过程的可视化 ,TensorBoard的应用 #导入模块并下载数据集 import tensorflow as tf from tensorflow.examples.tutorials.mni ...
- 深度学习训练过程中的学习率衰减策略及pytorch实现
学习率是深度学习中的一个重要超参数,选择合适的学习率能够帮助模型更好地收敛. 本文主要介绍深度学习训练过程中的6种学习率衰减策略以及相应的Pytorch实现. 1. StepLR 按固定的训练epoc ...
- 一个简洁、好用的Pytorch训练模板
一个简洁.好用的Pytorch训练模板 代码地址:https://github.com/KinglittleQ/Pytorch-Template 怎么使用 1) 更改template.py 替换 __ ...
- 万字长文,以代码的思想去详细讲解yolov3算法的实现原理和训练过程,Visdrone数据集实战训练
以代码的思想去详细讲解yolov3算法的实现原理和训练过程,并教使用visdrone2019数据集和自己制作数据集两种方式去训练自己的pytorch搭建的yolov3模型,吐血整理万字长文,纯属干货 ...
随机推荐
- IOS 获取 文件(UIImage) 创建时间
Image 在手机里 如果是手机拍的那么能使用ALAssetsLibrary获取一系列 图片的信息 颜色.GPS.尺寸.创建日期等 使用ALAssetsLibrary导入框架AssetsLibrary ...
- Express的基本使用
前言 列表项目Express是一个简介而灵活的node.js Web应用框架提供的一系列强大特性帮助你创建各种 Web 应用,和丰富的HTTP工具. 正文 一个简单的express框架实例 ``` / ...
- 20145239 实验一 Java开发环境的熟悉(Windows + IDEA)
实验一 Java开发环境的熟悉(Windows + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序:2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JV ...
- HDU 1201 Fibonacci Again
Fibonacci Again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- 简易html5贪吃蛇
1. [图片] E6~0%QPA46ER843UQJ$0Z`H.jpg 2. [文件] snake.html <!DOCTYPE html><html><head> ...
- iOS审核策略重磅更新:Guideline 2.1批量拒审
自从进入了2018年,大量应用在AppStore提交审核后,都直接给大家回复了个新春大礼包 Guideline 2.1 - Information Needed. 而大部分的应用,特别是金融类相关AP ...
- Java常用四大线程池用法以及ThreadPoolExecutor详解
为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中,线 ...
- 一些flag
连续两道组合计数题 WA 在杨辉三角上,TM 我要是联赛杨辉三角萎了就剁*. 又连续两道题萎在数组越界上,TM 我要是联赛数组越界就吃*.
- 监听输入框变化(oninput,onpropertychange,onchange)
oninput,onpropertychange,onchange: oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于 ...
- 白痴qwerta的胡言乱语(一句话日度感想?
10.2 >我tm吹爆这个Latex插件!!!太漂亮了吧?!!! 10.3 >什么鬼气考试 还有这考试的大家也肽水了吧 >再吹一次这个Latex插件!!! 10.6 >今天在琢 ...