本文是全系列中第19 / 24篇:Pytorch 专栏
- 使用PyTorch建立你的第一个文本分类模型
- PyTorch专栏(十八): 词嵌入,编码形式的词汇语义
- PyTorch 系列教程之空间变换器网络
- PyTorch高级实战教程: 基于BI-LSTM CRF实现命名实体识别和中文分词
- PyTorch专栏(十七): 使用PyTorch进行深度学习
- PyTorch ImageNet 基于预训练六大常用图片分类模型的实战
- 从零开始学PyTorch:一文学会线性回归、逻辑回归及图像分类
- PyTorch专栏(十六):使用字符级RNN进行名字分类
- PyTorch专栏(八):微调基于torchvision 0.3的目标检测模型
- PyTorch 60 分钟入门教程:数据并行处理
- 手把手带你使用字符级RNN生成名字 | PyTorch
- PyTorch专栏(七):模型保存与加载那些事
- Pytorch入门演练
- 聊天机器人实战教程 | PyTorch专栏
- PyTorch专栏(六): 混合前端的seq2seq模型部署
- Python 实现基于深度强化学习算法实现的一个简单自动驾驶 AI 【PyTorch】
- PyTorch 中使用深度学习(CNN和LSTM)的自动图像描述
- PyTorch专栏(十三):使用ONNX将模型转移至Caffe2和移动端
- PyTorch数据可视化工具Visdom(下)
- PyTorch专栏(二十):高级:制定动态决策和BI-LSTM CRF
- PyTorch专栏(十二):一文综述图像对抗算法
- PyTorch中文版官方教程来啦(附下载)
- PyTorch专栏(十九):序列模型和长短句记忆(LSTM)模型 | 文末开奖
- 使用 PyTorch 进行 风格迁移(Neural-Transfer)
作者 | FaceBook Research
编译 | VK
来源 | Github
用于创建,组织和共享实时丰富数据可视化的灵活工具。支持Python。
-
概述
-
概念
-
设置
-
用法
-
API
-
注意事项
-
贡献
API
要快速了解visdom
的功能,请查看example
目录,或阅读以下详细信息。
Visdom Arguments(仅限Python)
python visdom客户端有以下几种选择:
-
server
:visdom服务器的主机名(默认值:'http://localhost'
) -
port
:visdom服务器的端口(默认值:8097
) -
base_url
:基本visdom服务器url(默认:/
) -
env
:没有提供env
时要绘制的默认环境(默认是main
) -
raise_exceptions
:失败时引发异常,而不是打印它们(默认值:”True”(性能好)) -
log_to_filename
:如果不是全部,则将所有绘图和更新事件记录到给定文件中(附加模式),以便以后可以使用replay_log
来重放它们(默认值:”None”) -
use_incoming_socket
:启用套接字以从Web客户端接收事件,允许用户注册回调(默认值:”True”) -
http_proxy_host
:已弃用。使用Proxies参数可获得完整的代理支持。 -
http_proxy_port
:已弃用。使用Proxies参数可获得完整的代理支持。 -
username
:用于验证的用户名,如果服务器以-enable_login
开头(默认值:None
) -
password
:用于验证的密码,如果服务器以-enable_login
开头(默认:None
) -
proxies
:字典映射协议,用于在每个请求上使用的代理URL(例如{http
:foo.bar:3128
})。(默认值:”无”) -
offline
:标记为在脱机模式下运行visdom,在该模式下,所有请求都记录到文件而不是服务器上。需要设置”log_to_filename”。在离线模式下,所有不创建或更新绘图的visdom命令都将简单地返回True。(默认值:”False”)
其他选项当前未使用(端点,ipv6)或用于内部功能。
基本功能
-
vis.image:图片 -
vis.images:图像列表 -
vis.text:任意HTML -
vis.properties:属性网格 -
vis.audio:音频 -
vis.video:视频 -
vis.svg:SVG对象 -
vis.matplot:matplotlib图 -
vis.save:序列化状态服务器端
绘图
-
vis.scatter:2D或3D散点图 -
vis.line:线图 -
vis.stem:stem图 -
vis.heatmap:热图 -
vis.bar:条形图 -
vis.histogram:直方图 -
vis.boxplot:箱线图 -
vis.surf:表面图 -
vis.contour:等高线图 -
vis.quiver:颤动图 -
vis.mesh:网格图
通用图
import visdom
vis = visdom.Visdom()
trace = dict(x=[1, 2, 3], y=[4, 5, 6], mode="markers+lines", type='custom',
marker={'color': 'red', 'symbol': 104, 'size': "10"},
text=["one", "two", "three"], name='1st Trace')
layout = dict(title="First Plot", xaxis={'title': 'x1'}, yaxis={'title': 'x2'})
vis._send({'data': [trace], 'layout': layout, 'win': 'mywin'})
其他
-
vis.close:按ID关闭窗口 -
vis.delete_env:通过env_id删除环境 -
vis.win_exists:通过ID检查窗口是否已存在 -
vis.get_env_list:获取服务器上所有环境的列表 -
vis.win_hash:获取窗口内容的md5哈希值 -
vis.get_window_data:获取窗口的当前数据 -
vis.check_connection:检查服务器是否已连接 -
vis.replay_log:从提供的日志文件中重播操作
细节
基础内容
vis.image
CxHxW
张量的img作为输入opts
:-
jpgquality
:JPG的质量(number
0-100)。如果已定义,图像将另存为JPG以减小文件大小。如果未定义,图像将另存为PNG。 -
caption
:图片的标题 -
store_history
:将所有图像存储在同一窗口中,并在底部附加一个滑块,使你可以选择要查看的图像。将新图像发送到具有历史记录的图像时,必须始终提供此选项。
注意你可以在图像窗格上使用alt查看光标的x/y坐标。你也可以按ctrl键滚动缩放,按住alt键滚动可以垂直平移,按住alt键滚动则可以水平平移。在窗格内双击以将图像恢复为默认值。
vis.images
此函数绘制”图像”列表。它需要一个输入”BxCxHxW”张量或一个”图像列表”,且大小均相同。它使图像的尺寸为(B/nrow,nrow)。
支持以下参数和opts
:
-
nrow
:连续的图像数量 -
padding
:在图片周围填充,在所有4条边均等填充 -
opts.jpgquality
:JPG的质量(number
0-100)。如果已定义,图像将另存为JPG以减小文件大小。如果未定义,图像将另存为PNG。 -
opts.caption
:图片的标题
vis.text
opts
。vis.properties
properties = [
{'type': 'text', 'name': 'Text input', 'value': 'initial'},
{'type': 'number', 'name': 'Number input', 'value': '12'},
{'type': 'button', 'name': 'Button', 'value': 'Start'},
{'type': 'checkbox', 'name': 'Checkbox', 'value': True},
{'type': 'select', 'name': 'Select', 'value': 1, 'values': ['Red', 'Green', 'Blue']},
]
-
text:字串 -
number:十进制数字 -
button:标有”值”的按钮 -
checkbox:布尔值呈现为复选框 -
select:多个值选择框 -
`value`:所选值的ID(从零开始) -
`values`:可能值的列表
-
event_type
:"PropertyUpdate"
-
propertyId
:在properties
列表中的位置 -
value
:新值
opts
。vis.audio
opts
。opts
:-
opts.sample_frequency
:采样频率(integer
> 0;默认= 44100)
已知版本的Chrome不能播放这些wave文件(Firefox和Safari可以正常工作)。
vis.video
opts
。opts
:-
opts.fps
:视频的FPS(integer
> 0;默认= 25)
tensor
输入要求ffmpeg已安装并工作。你能否播放视频取决于你使用的浏览器:在OGG容器中支持Theano编解码器(Chrome支持此函数)。vis.svg
svgstr
或SVG文件svgfile
的名称。该函数不支持任何特定的opts。vis.matplot
plot
。函数支持一个特定于绘图的选项:”可调整大小”。注意:设置为”True”时,将使用窗格。你需要安装
beautifulsoup4
和lxml
软件包。注意:
matplot
的渲染后端与绘图中的绘图不同,效率较低。使用过多的Matplot窗口可能会降低视觉效果。
vis.plotlyplot
注意你必须安装”plotly”软件包才能使用此函数。通常可以通过运行”pip install plotly”来安装它。
vis.embeddings
-
features
:张量列表 -
labels
:为features
提供的张量的相应标签列表 -
data_getter = fn
:(可选)一个函数,该函数将要素数组中的索引作为参数并返回张量的摘要表示。如果已设置,则还必须设置"data_type"
。 -
data_type = str
:(可选),当前唯一可接受的值是"html"
vis.save
envs
。它需要输入要保存的环境ID列表。绘图
vis.scatter
'append'
来添加数据,使用'replace'
来使用新数据,或使用'remove'
来删除由name指定的跟踪。如果不存在,使用update ='append'
将创建一个图,否则将其追加到现有图上。如果要更新单个跟踪,请使用"name"
指定要更新的跟踪的名称。全部为NaN的更新数据将被忽略(可用于屏蔽更新)。opts
:-
opts.markersymbol
:标记符号(string
;默认='dot'
) -
opts.markersize
:标记大小(number
;默认='10'
) -
opts.markercolor
:每个标记的颜色。(torch.* Tensor
;默认=nil
) -
opts.legend
:table
包含图例名称 -
opts.textlabels
:每个点的文本标签(list
:默认 =None
) -
opts.layoutopts
:图形后端接受布局的任何其他选项的字典。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。 -
opts.traceopts
:字典将跟踪名称或索引映射到图形后端接受的其他选项的字典。例如traceopts = {'plotly':{'myTrace':{'mode':'markers'}}}
。 -
opts.webgl
:使用WebGL进行绘图(“boolean”;默认=”false”)。如果绘图包含太多点,则速度更快。谨慎使用,因为浏览器在单个页面上最多允许两个WebGL上下文。
-
大小为 N
的张量:每个数据点的单个强度值。0=黑色,255=红色 -
大小为 "Nx3"
的张量:每个数据点的红色,绿色和蓝色强度。0,0,0=黑色,255,255,255=白色 -
"K"
和"Kx3"
大小的张量:不是每个数据点都有唯一的颜色,而是为特定标签的所有点共享相同的颜色。
vis.line
N
或NxM
张量作为输入,"Y"
指定"M"
行的值(连接"N"
个点)绘图。它还需要一个可选的X
张量来指定相应的x轴值;X可以是N
张量(在这种情况下线将共享相同的x轴值)或具有与"Y"
相同的尺寸。name
指定的跟踪。如果要更新单个跟踪,请使用”名称”指定要更新的跟踪的名称。全部为NaN的更新数据将被忽略(可用于屏蔽更新)。opts
:-
opts.fillarea
:填充线以下的区域(boolean
) -
opts.markers
:显示标记(boolean
;默认=false
) -
opts.markersymbol
:标记符号(string
;默认='dot'
) -
opts.markersize
:标记大小(number
;默认='10'
) -
opts.linecolor
:线条颜色(np.array
;默认=None) -
opts.dash
:每行的行破折号类型(np.array
;默认=’solid’),为solid
,dash
,dashdot
或dash
之一,大小应与画线 -
opts.legend
:table
包含图例名称 -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。 -
opts.traceopts
:dict
将跟踪名称或索引映射到plot.ly接受的其他选项的dict
。 -
opts.webgl
:使用WebGL进行绘图(“boolean”;默认=”false”)。如果绘图包含太多点,则速度更快。谨慎使用,因为浏览器在单个页面上最多允许两个WebGL上下文。
vis.stem
N
或NxM
张量作为输入X
,它指定M
时间序列中N
点的值。可以指定一个可选的包含时间戳的N
或NxM
张量Y
以及如果Y
是N
张量,则所有M
时间序列都假定为具有相同的时间戳。opts
:-
opts.colormap
:颜色图(string
;默认='Viridis'
) -
opts.legend
:table
包含图例名称 -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
vis.heatmap
NxM
张量X
为输入,指定热图中每个位置的值。opts
:-
opts.colormap
:颜色图(string
;默认='Viridis'
) -
opts.xmin
:剪辑最小值(number
;默认=X:min()
) -
opts.xmax
:剪辑最大值(number
;默认=X:max()
) -
opts.columnnames
:table
包含X轴标签 -
opts.rownames
:包含y轴标签的table
-
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。 -
opts.nancolor
:用于绘制NaN
s的颜色。如果为"None"
,则将"NaN"
绘制为透明。(string
;默认=None
)
vis.bar
N
或NxM
张量X
来指定每个条形。如果"X"
包含"M"
列,则对应于每一行的值是堆叠还是分组(取决于”opts.stacked”的方式)。除了X
,还可以指定一个(可选的)N
张量Y
。包含相应的x轴值。opts
:-
opts.rownames
:table
包含x轴标签 -
opts.stacked
:在X
中堆叠多列 -
opts.legend
:包含图例标签的table
-
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
vis.histogram
opts
:-
opts.numbins
:箱数(number
;默认=30) -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
vis.boxplot
"N"
或"NxM"
张量"X"
,用于指定其中的"N"
个数据值来构造"M"
箱形图。opts
:-
opts.legend
:X中每个列的标签 -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
vis.surf
NxM
张量X
为输入。它指定表面图中每个位置的值。
opts
:-
opts.colormap
:颜色图(string
;默认='Viridis'
) -
opts.xmin
:剪辑最小值(number
;默认=X:min()
) -
opts.xmax
:剪辑最大值(number
;默认=X:max()
) -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
vis.contour
NxM
张量X
为输入。它指定等高线图中每个位置的值。opts
:-
opts.colormap
:颜色图(string
;默认='Viridis'
) -
opts.xmin
:剪辑最小值(number
;默认=X:min()
) -
opts.xmax
:剪辑最大值(number
;默认=X:max()
) -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
vis.quiver
NxM
张量X
和y
决定。可以提供两个可选的NxM
张量gridX和gridY,指定箭头的偏移量;默认情况下,箭头将在常规网格上显示。opts
:-
opts.normalize
:最长箭头的长度(number
) -
opts.arrowheads
:显示箭头(boolean
;默认=true
) -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
可见网格
"Nx2"
或"Nx3"
矩阵"X"
,以及在可选"Mx2"
或"Mx3"
矩阵Y。opts
:-
opts.color
:颜色(string
) -
opts.opacity
:多边形的不透明度(“number”介于0和1之间) -
opts.layoutopts
:图形后端为布局接受的任何其他选项的dict
。例如layoutopts = {'plotly':{'legend':{'x':0,'y':0}}}
。
自定义图
opts
表作为输入,可用于更改(通用或特定于绘图的)绘图属性。所有输入参数都在一个表中指定;输入参数根据输入表中的键进行匹配。-
opts.title
:图形标题 -
opts.width
:图形宽度 -
opts.height
:图形高度 -
opts.showlegend
:显示图例(“true”或”false”) -
opts.xtype
:x轴的类型('linear'
或'log'
) -
opts.xlabel
:x轴的标签 -
opts.xtick
:在x轴上显示刻度(boolean
) -
opts.xtickmin
:x轴上的第一个刻度(number
) -
opts.xtickmax
:x轴上的最后一个刻度(number
) -
opts.xtickvals
:x轴上的刻度线位置(“number” s的”table”表) -
opts.xticklabels
:勾选x轴上的标签(string
s的table
) -
opts.xtickstep
:x轴刻度之间的距离(number
) -
opts.xtickfont
:x轴标签的字体(字体信息的字典(https://plot.ly/javascript/reference/#layout-font)) -
opts.ytype
:y轴的类型('linear'
或'log'
) -
opts.ylabel
:y轴的标签 -
opts.ytick
:在y轴上显示刻度(boolean
) -
opts.ytickmin
:y轴上的第一个刻度(number
) -
opts.ytickmax
:y轴上的最后一个刻度(number
) -
opts.ytickvals
:y轴上的刻度位置(number
类型的s的table
) -
opts.yticklabels
:在y轴上打勾标签(string
类型的s的table
) -
opts.ytickstep
:y轴上刻度线之间的距离(number
) -
opts.ytickfont
:y轴标签的字体(字体信息的字典(https://plot.ly/javascript/reference/#layout-font)) -
opts.marginleft
:左边距(以像素为单位) -
opts.marginright
:右边距(以像素为单位) -
opts.margintop
:上边距(以像素为单位) -
opts.marginbottom
:底边距(以像素为单位)
其他
vis.close
win
作为None
关闭环境中的所有窗口。vis.delete_env
eid
作为输入。注意:
delete_env
删除环境中的所有数据,并且是不可撤销的。除非绝对要删除环境,否则请勿使用。
vis.fork_env
-
prev_eid
:我们要fork的环境ID。 -
eid
:将用fork创建的新环境ID。
注意:
fork_env
如果不存在的env被fork,则会发生异常。
vis.win_exists
-
env
:搜索窗口的环境。默认为None
。
vis.get_env_list
vis.win_hash
-
env
:搜索窗口的环境。默认为None
。
vis.get_window_data
-
env
:搜索窗口的环境。 -
win
:要为其返回数据的窗口。设置为”无”以检索环境中的所有窗口。
vis.check_connection
timeout_seconds
数秒以等待服务器启动。vis.replay_log
-
log_filename
:重播日志文件的内容。
许可
关于Lua Torch支持的注意事项
v0.1.8.4
之后,不再支持Lua Torch。如果你想使用Torch支持,则需要下载该版本。你可以在此处按照使用说明进行操作,但不再受正式支持。贡献
致谢
征稿启事
想让你的技术经验或成果让更多的人看到吗?
想与更多大佬探讨你的研究吗?
总有一些你不认识的人,想知道你知道的东西;也总有一些人,知道你想知道的东西。
磐创AI或许可以提供一个头脑风暴的契机,让你创造更多的可能性。
磐创AI 向广大高校实验室或个人征集各类与本公众号内容相关的优质文章,可以是最新论文解读,也可以是学习心得或技术干货。来稿一经采用,磐创AI将给予作者精美礼品一份。
📝 来稿须知:
• 来稿需是原创作品,且若非首发,请注明首发链接
• 来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 来稿经采用发出,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:594791850@qq.com
• 文章如配图,请压缩打包后在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
你与未来只差一个
磐创AI
原创文章,作者:磐石,如若转载,请注明出处:https://panchuang.net/2020/02/11/7e475f21f4/