2018/9/18更新  感觉tensorboardX插件更好用,已转用https://github.com/lanpa/tensorboardX

更新:新版visdom0.1.7安装方式为:conda install -c srivasv visdom

pytorch下可采用visidom作为可视化工具

1. 安装

pip install visdomconda install visdom

启动

python -m visdom.server

在浏览器输入:http://localhost:8097/,即可启动

Note:

(1)有时安装了之后不能用,比如网页什么都没有,可尝试替换 Anaconda3\Lib\site-packages\visdom下的static文件夹(如果你用anaconda的话),是因为网络的原因,导致文件下载不全,文件链接链接:https://pan.baidu.com/s/1c4liqoK 密码:q1sx,在Linux(Ubuntu)下也是同样的处理,在Lib\site-packages\visdom下替换static文件,重启生效!!!!

(2)有时候启动visdom的时候,显示目标计算机拒绝等网络连接不成功,可用如下测试

from visdom import Visdomviz = Visdom()assert viz.check_connection()

主要是我是用了代理上网,导致我的IE浏览器的Internet选项被改变,如下图:

2. 可视化损失函数的示例

首先介绍一下visdom中的line()函数:

1) 画一条直线

from visdom import Visdomimport numpy as npviz = Visdom(env='my_wind')#设置环境窗口的名称是'my_wind',如果不设置名称就在main中tr_loss=list(range(100))viz.line(Y=np.array(tr_loss), opts=dict(showlegend=True))

在运行上面的程序之前,首先启动visdom,在cmd里输入python -m visdom.server,然后在浏览器里输入:http://localhost:8097/,默认是在main环境下:

上面的代码里,我们设置环境窗口的名称是'my_wind',所以我们需要打开my_wind环境,如下:

运行代码!

2) 如果要画多条直线

from visdom import Visdomimport numpy as npviz = Visdom(env='my_wind')#设置环境窗口的名称是'my_wind',如果不设置名称就在main中tr_loss=list(range(100))ts_loss=list(range(10,110))viz.line(Y=np.column_stack((np.array(tr_loss),np.array(ts_loss))), opts=dict(showlegend=True))

注意:以上变量的值在绘制前是确定了的

3)如果要绘制随程序运行逐渐产生的值,如在训练的时候,可以采用line的update方法

from visdom import Visdomimport numpy as npviz = Visdom(env='my_wind')x,y=0,0win = viz.line( X=np.array([x]), Y=np.array([y]), opts=dict(title='two_lines'))for i in range(10): x+=i y+=i viz.line( X=np.array([x]), Y=np.array([y]), win=win,#win要保持一致 update='append')

最后是深度学习训练过程中的损失函数可视化,参考的是pytorch实战指南里的可视化操作。

将损失函数的可视化放在visual_loss.py文件:

#coding:utf8import visdomimport timeimport numpy as np class Visualizer(object): def __init__(self, env='default', **kwargs): self.vis = visdom.Visdom(env=env, www.yundingyuLe.cn**kwargs) self.index = {} def plot_many_stack(self, d): ''' self.plot(www.yigou521.com'loss',1.00) ''' name=list(d.keys()) name_total=" ".join(name) x = self.index.get(name_www.thd540.com total, 0) val=list(d.values(www.baidu620.com/)) if len(val)==1: y=np.array(val) else: y=np.array(val).reshape(-1,len(val)) #print(x) self.vis.line(Y=y,X=np.ones(y.shape)*x, win=str(name_total),#unicode opts=dict(legend=name, title=name_total), update=None if x == 0 else 'append' ) self.index[name_total] = x + 1

在jupyter notebook——loss_visual_test.ipynb中进行函数功能测试:

from visual_loss import Visualizerfrom torchnet import meter#用 torchnet来存放损失函数,如果没有,请安装conda install torchnet'''训练前的模型、损失函数设置 vis = Visualizer(env='my_wind')#为了可视化增加的内容loss_meter = meter.AverageValueMeter()#为了可视化增加的内容for epoch in range(10):    #每个epoch开始前,将存放的loss清除,重新开始记录    loss_meter.reset()#为了可视化增加的内容    model.train()    for ii,(data,label)in enumerate(trainloader):             ...        out=model(input)        loss=...        loss_meter.add(loss.data[0])#为了可视化增加的内容            #loss可视化    #loss_meter.value()[0]返回存放的loss的均值    vis.plot_many_stack({'train_loss': loss_meter.value()[0]})#为了可视化增加的内容    '''#示例vis = Visualizer(env='my_wind')#为了可视化增加的内容loss_meter = meter.AverageValueMeter()#为了可视化增加的内容for epoch in range(10):    loss_meter.reset()#为了可视化增加的内容    loss_meter.add(epoch)#假设loss=epoch    vis.plot_many_stack({'train_loss': loss_meter.value()[0]})#为了可视化增加的内容  #如果还想同时显示test loss,如法炮制,并用字典的形式赋值,如下。还可以同时显示train和test accuracy #vis.plot_many_stack({'train_loss': loss_meter.value()[0],'test_loss':test_loss_meter.value()[0]})#为了可视化增加的内容

文件结构:

其中__init__.py为空

注意:我的visdom版本为

也不知道用的是哪个,通过conda install visdom安装的版本比较旧,官网的最新版本是

安装方式是在终端输入

conda install -c srivasv visdom

---------------------

本文来自 lxx516 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/LXX516/article/details/79019328?utm_source=copy

pytorch下可采用visidom作为可视化工具的更多相关文章

  1. mongodb在window下和linux下的部署 和 安装可视化工具

    Windows安装    安装Mongo数据库: 在发布本文的时间官方提供的最新版本是:2.4.0 ,如果不做特殊声明,本教程所用的版本将会是这个版本. 第一步:下载安装包:http://www.mo ...

  2. Window下安装并使用InfluxDB可视化工具 —— InfluxDBStudio

    下载 直接访问: https://github.com/CymaticLabs/InfluxDBStudio/releases/tag/v0.2.0-beta.1 创建or编辑InfluxDB 这个软 ...

  3. 2018 MAC下安装Redis和Redis可视化工具RDM并连接Redis

    实验环境:一台mac V:10.13.6 一.安装redis brew install redis 二.安装RDM 直接下载安装rdm dmg文件 链接: https://pan.baidu.com/ ...

  4. MAC下安装REDIS和REDIS可视化工具RDM并连接REDIS

    实验环境:一台mac V:10.13.6 一.安装redis brew install redis 二.安装RDM 直接下载安装rdm dmg文件 链接: https://pan.baidu.com/ ...

  5. Pytorch Visdom可视化工具

    2018-12-04 14:05:49 Visdom是Facebook专门为PyTorch开发的一款可视化工具,其开源于2017年3月.Visdom十分轻量级,但却支持非常丰富的功能,能胜任大多数的科 ...

  6. pytorch visdom可视化工具学习—1—详细使用-1—基本使用函数

    使用教程,参考: https://github.com/facebookresearch/visdom https://www.pytorchtutorial.com/using-visdom-for ...

  7. mac mamp环境 和linux下 安装redis 和可视化工具 Redis Desktop Manager

    mac下安装 第一步:安装redis 1. brew install redis 2.启动服务/usr/local/opt/redis/bin/redis-server 3.配置redis密码访问 编 ...

  8. MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)

    一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...

  9. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...

随机推荐

  1. Update主循环的实现原理

    从写一段程序,到写一个app,写一个游戏,到底其中有什么不同呢?一段程序的执行时间很短,一个应用的执行时间很长,仅此而已.游戏中存在一个帧的概念. 这个概念大家都知道,类比的话,它就是电影胶卷的格.一 ...

  2. UVA 1609 Foul Play 不公平竞赛 (构(luan)造(gao)+递归)

    题意:有n支队伍(n是2的整数幂,2<=n<=4),打淘汰赛,胜者进入下一轮,其中1号队伍能打败至少一半的队伍,对于它不能打败的队伍l,一定存在一支它能够打败的队伍w,使得w能直接打败l, ...

  3. windows自定义快速启动(运行)命令

    自定义运行(windows键+R)里面命令,启动设置的程序,如图: 它的设置方法有两种: 第一种设置方法: 第1步:在任意地方创建一个文件夹(建议在D盘根目录创建),文件夹的名称可自定义没有特殊限制, ...

  4. 2018.4.16 Java多线程实现龟兔赛跑

    龟兔赛跑(通过多线程来实现 里面的具体方法) TT.java package com.lanqiao.demo3; /** * 乌龟 * @author Administrator * */ publ ...

  5. .vue公共组件裁减导航

    场景: 有一个公共头部和底部,vue搭建的框架,在app.vue里写的公共方法,首页是个登录页面,不需要公共部分,在这基础上进行公共部分的显示隐藏. 即注册页.登录页.404页面都不要导航 代码: ( ...

  6. Ajax的原理及Django上传组件

    title: Ajax的原理及Django上传组件 tags: Django --- Ajax的原理及Django上传组件 Ajax的原理 ajax 是异步JavaScript和xml ajax就是向 ...

  7. bootstrap 超大屏幕(Jumbotron)

    本章将讲解Bootstrap的一个特性:超大屏幕(Jumbonron),顾名思义该组件可以增加标题的大小,并为登录页面的内容添加更多的外边矩. 使用超大屏幕的步骤如下: 1.创建一个还有class.j ...

  8. 为什么方差的分母有时是n,有时是n-1 源于总体方差和样本方差的不同

    为什么样本方差(sample variance)的分母是 n-1? 样本方差计算公式里分母为n-1的目的是为了让方差的估计是无偏的.无偏的估计(unbiased estimator)比有偏估计(bia ...

  9. tensorflow目标检测API安装及测试

    1.环境安装配置 1.1 安装tensorflow 安装tensorflow不再仔细说明,但是版本一定要是1.9 1.2 下载Tensorflow object detection API  下载地址 ...

  10. ubuntu16.04安装mongodb,创建数据库管理员,上传文件到服务器上

    1.导入软件源得公钥 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 2.为mongodb创建软件 ...