<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>可视化 &#8211; 编码无悔 /  Intent &amp; Focused</title>
	<atom:link href="https://www.codelast.com/tag/%e5%8f%af%e8%a7%86%e5%8c%96/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.codelast.com</link>
	<description>最优化之路</description>
	<lastBuildDate>Mon, 27 Apr 2020 17:16:26 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[原创] 强化学习框架 rlpyt 的数据可视化工具：viskit</title>
		<link>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e6%a1%86%e6%9e%b6-rlpyt-%e6%95%b0%e6%8d%ae%e5%8f%af%e8%a7%86%e5%8c%96/</link>
					<comments>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e6%a1%86%e6%9e%b6-rlpyt-%e6%95%b0%e6%8d%ae%e5%8f%af%e8%a7%86%e5%8c%96/#comments</comments>
		
		<dc:creator><![CDATA[learnhard]]></dc:creator>
		<pubDate>Tue, 03 Dec 2019 13:15:54 +0000</pubDate>
				<category><![CDATA[原创]]></category>
		<category><![CDATA[综合]]></category>
		<category><![CDATA[Reinforcement Learning]]></category>
		<category><![CDATA[rlpyt]]></category>
		<category><![CDATA[viskit]]></category>
		<category><![CDATA[可视化]]></category>
		<category><![CDATA[强化学习]]></category>
		<guid isPermaLink="false">https://www.codelast.com/?p=11183</guid>

					<description><![CDATA[<p>
查看关于 rlpyt&#160;的更多文章请点击<a href="https://www.codelast.com/?p=10907" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">这里</span></a>。</p>
<p><a href="https://github.com/astooke/rlpyt" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">rlpyt</span></a>&#160;是<span style="color: rgb(0, 0, 255);">BAIR</span>(Berkeley Artificial Intelligence Research，伯克利人工智能研究所)开源的一个强化学习(<span style="color: rgb(255, 0, 0);">RL</span>)框架。我之前写了一篇它的<a href="https://www.codelast.com/?p=10643" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">简介</span></a>。&#160;<br />
在训练强化学习模型的过程中，rlpyt 产生的大量训练日志看起来无比枯燥，本文展示了如何利用 <a href="https://github.com/vitchyr/viskit" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">viskit</span></a> 把这些日志数据可视化。<br />
<span id="more-11183"></span><br />
<span style="color: rgb(0, 0, 255);"><span style="background-color: rgb(0, 255, 0);">▶▶</span></span>&#160;viskit是什么<br />
<a href="https://github.com/vitchyr/viskit" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">viskit</span></a>是<a href="https://github.com/rll/rllab" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">rllab</span></a>的一个可视化组件，rllab是一个曾经有一定知名度的强化学习框架，但可惜的是它早就停止开发了。不过，viskit却被人单独抽了出来，作为一个可视化工具来使用。rlpyt 生成的训练日志也可以利用它来可视化，这是因为 rlpyt 生成的日志格式遵循了 viskit 的规范。<br />
<span style="color:#ff0000;">viskit的功能是</span>：读取它能解析的日志数据，启动一个网页，在网页上用图形展示日志内容。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(0, 0, 255);"><span style="background-color: rgb(0, 255, 0);">▶▶</span></span>&#160;安装viskit<br />
把代码下载到本地：</p>
<blockquote>
<p>
		git clone&#160;git@github.com:vitchyr/viskit.git<br />
		cd&#160;viskit/</p>
</blockquote>
<p>安装viskit的依赖包：</p>
<blockquote>
<div>
		conda install -c anaconda matplotlib</div>
<div>
		conda install -c anaconda flask</div>
<div>
		conda install -c anaconda plotly</div>
</blockquote>
<p>注意，在这里我是在Anaconda环境里装的，如果你不用Anaconda，也可以用对应的pip install命令来装。<br />
需要flask是因为viskit会启动一个网页来可视化地展示数据，它正是使用了Flask来实现的（Flask 是一个 Python 实现的 Web 开发微框架）。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a>&#8230; <a href="https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e6%a1%86%e6%9e%b6-rlpyt-%e6%95%b0%e6%8d%ae%e5%8f%af%e8%a7%86%e5%8c%96/" class="read-more">Read More </a></p>]]></description>
										<content:encoded><![CDATA[<p>
查看关于 rlpyt&nbsp;的更多文章请点击<a href="https://www.codelast.com/?p=10907" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">这里</span></a>。</p>
<p><a href="https://github.com/astooke/rlpyt" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">rlpyt</span></a>&nbsp;是<span style="color: rgb(0, 0, 255);">BAIR</span>(Berkeley Artificial Intelligence Research，伯克利人工智能研究所)开源的一个强化学习(<span style="color: rgb(255, 0, 0);">RL</span>)框架。我之前写了一篇它的<a href="https://www.codelast.com/?p=10643" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">简介</span></a>。&nbsp;<br />
在训练强化学习模型的过程中，rlpyt 产生的大量训练日志看起来无比枯燥，本文展示了如何利用 <a href="https://github.com/vitchyr/viskit" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">viskit</span></a> 把这些日志数据可视化。<br />
<span id="more-11183"></span><br />
<span style="color: rgb(0, 0, 255);"><span style="background-color: rgb(0, 255, 0);"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></span>&nbsp;viskit是什么<br />
<a href="https://github.com/vitchyr/viskit" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">viskit</span></a>是<a href="https://github.com/rll/rllab" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">rllab</span></a>的一个可视化组件，rllab是一个曾经有一定知名度的强化学习框架，但可惜的是它早就停止开发了。不过，viskit却被人单独抽了出来，作为一个可视化工具来使用。rlpyt 生成的训练日志也可以利用它来可视化，这是因为 rlpyt 生成的日志格式遵循了 viskit 的规范。<br />
<span style="color:#ff0000;">viskit的功能是</span>：读取它能解析的日志数据，启动一个网页，在网页上用图形展示日志内容。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(0, 0, 255);"><span style="background-color: rgb(0, 255, 0);"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></span>&nbsp;安装viskit<br />
把代码下载到本地：</p>
<blockquote>
<p>
		git clone&nbsp;git@github.com:vitchyr/viskit.git<br />
		cd&nbsp;viskit/</p>
</blockquote>
<p>安装viskit的依赖包：</p>
<blockquote>
<div>
		conda install -c anaconda matplotlib</div>
<div>
		conda install -c anaconda flask</div>
<div>
		conda install -c anaconda plotly</div>
</blockquote>
<p>注意，在这里我是在Anaconda环境里装的，如果你不用Anaconda，也可以用对应的pip install命令来装。<br />
需要flask是因为viskit会启动一个网页来可视化地展示数据，它正是使用了Flask来实现的（Flask 是一个 Python 实现的 Web 开发微框架）。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(0, 0, 255);"><span style="background-color: rgb(0, 255, 0);"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></span>&nbsp;使用viskit<br />
在使用viskit之前，首先你得有供它读取的日志。这里假设日志的路径为：<span style="color:#0000ff;">/path/to/your/log/dir</span><br />
这个路径下的日志文件名应该是类似于这样的：</p>
<div>
	<span style="color:#b22222;">├── debug.log</span></div>
<div>
	<span style="color:#b22222;">├── params.json</span></div>
<div>
	<span style="color:#b22222;">└── progress.csv</span></div>
<p>
你可以用 rlpyt 跑一下自带的example，就会生成这样的日志数据。</p>
<p>设置PYTHONPATH：</p>
<blockquote>
<p>
		export PYTHONPATH=/path/to/your/viskit:$PYTHONPATH</p>
</blockquote>
<p>这里的 <span style="color:#0000ff;">/path/to/your/viskit</span> 是你的viskit源码所在路径。<br />
运行viskit：</p>
<blockquote>
<p>
		python viskit/frontend.py /path/to/your/log/dir</p>
</blockquote>
<p>最后一个参数就是日志所在的目录。<br />
不出错的话，你会看到命令行有这样的输出：</p>
<blockquote>
<div>
		Importing data from [&#39;/path/to/your/log/dir&#39;]...</div>
<div>
		Reading /path/to/your/log/dir/progress.csv</div>
<div>
		View http://localhost:5000 in your browser</div>
<div>
		&nbsp;* Serving Flask app &quot;frontend&quot; (lazy loading)</div>
<div>
		&nbsp;* Environment: production</div>
<div>
		&nbsp; &nbsp;WARNING: This is a development server. Do not use it in a production deployment.</div>
<div>
		&nbsp; &nbsp;Use a production WSGI server instead.</div>
<div>
		&nbsp;* Debug mode: off</div>
<div>
		&nbsp;* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)</div>
</blockquote>
<p><span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(0, 0, 255);"><span style="background-color: rgb(0, 255, 0);"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></span>&nbsp;效果展示<br />
用浏览器访问&nbsp;<span style="color:#ff0000;">http://localhost:5000/</span> 即可打开可视化网页：<br />
<img decoding="async" alt="viskit" src="https://www.codelast.com/wp-content/uploads/2019/12/viskit.png" style="width: 700px; height: 411px;" /></p>
<p>在上面的&ldquo;<span style="color:#0000ff;">Y-Axis Attributes</span>&rdquo;下拉列表框里可以选择要把哪些指标绘制成图形，点击&ldquo;<span style="color:#0000ff;">Upadte</span>&rdquo;按钮即可刷新下面的图像。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
各种指标图：<br />
<img decoding="async" alt="viskit graph" src="https://www.codelast.com/wp-content/uploads/2019/12/viskit_graph.png" style="width: 700px; height: 560px;" /><br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
比较酷炫的是，这些图是可以进行缩放等操作的，在图的右上方有一排工具按钮，点一下就看到效果了。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;版权声明&nbsp;<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;<br />
转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong style="font-size: 16px;"><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&nbsp;<br />
感谢关注我的微信公众号（微信扫一扫）：</p>
<p style="border: 0px; font-size: 13px; margin: 0px 0px 9px; outline: 0px; padding: 0px; color: rgb(77, 77, 77);">
	<img decoding="async" alt="wechat qrcode of codelast" src="https://www.codelast.com/codelast_wechat_qr_code.jpg" style="width: 200px; height: 200px;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e6%a1%86%e6%9e%b6-rlpyt-%e6%95%b0%e6%8d%ae%e5%8f%af%e8%a7%86%e5%8c%96/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
