SKIL/工作流程/可视化

59 篇文章 0 订阅

可视化

有两种方法可以在SKIL中可视化数据。可视化对于解释结果和理解其他复杂数组很有用,并且通常需要通过T-SNE或UMAP等算法实现降维。

 

训练可视化
使用Deeplarming4J用户界面
如果你正在使用deeplearning4j,则可以在训练模型时可视化统计数据。SKIL预先打包了一个ui服务器,该服务器将通过将ui标志传递到skil start脚本来自动启动:

#如果没有设置SKIL_HOME和JAVA_HOME变量,请取消对以下行的注释
# export SKIL_HOME=/opt/skil
# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

# 首先进行授权
$SKIL_HOME/sbin/skil login --userId admin --password admin # 你可能有不同的用户名和密码,请相应地替换它们。

# 启动
$SKIL_HOME/sbin/skil ui

 

对于docker,你需要转发端口9002以访问UI。

# 从Docker启动,确保你映射了端口9002
docker run --rm -it -p 9008:9008 -p 8080:8080 -p 9002:9002 skymindops/skil-ce bash /start-skil.sh

稍后,你可以在笔记本中添加一个%sh单元,专门启动UI服务器:

%sh

#如果没有设置SKIL_HOME和JAVA_HOME变量,请取消对以下行的注释
# export SKIL_HOME=/opt/skil
# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

# 首先进行授权
$SKIL_HOME/sbin/skil login --userId admin --password admin # 你可能有不同的用户名和密码,请相应地替换它们。

# 启动
$SKIL_HOME/sbin/skil ui

skil ui命令的默认参数及其详细信息如下:

参数默认值详情
uiPort9002用于用户界面服务器的端口
enableRemoteTrue是否启用远程。它控制是否允许远程连接。

 

上面的命令$SKIL_HOME/sbin/skil ui将在端口9002启动一个用户界面服务器,默认情况下允许远程连接。你可以进一步提供--uiPort和--enableMemote参数,以在其他端口启动ui服务器,或者如果你想控制到该服务器的远程连接。

 

$SKIL_HOME/sbin/skil ui --uiPort 9010 --enableRemote False # 在端口9010启动UI服务器,禁用远程连接

 

Visualizing the DL4J Network

You will need to route your StatsListener to the UI port (default 9002). You can view the demo for DL4J UI with the default notebook that is created when you create an "Experiment" in SKIL and uncomment the following lines in the 4th paragraph.

可视化DL4J网络
你需要将StatsListener路由到UI端口(默认9002)。你可以使用在skil中创建“实验”时创建的默认笔记本来查看DL4J UI的演示,并在第4段中取消对以下行的注释。

//val remoteUIRouter = new RemoteUIStatsStorageRouter("http://localhost:9002")
//model.setListeners(new StatsListener(remoteUIRouter))

在取消对上述行的注释后,运行笔记本的前四段,然后在UI端口上可视化网络(此处,默认情况下,它设置为笔记本中的端口9002),这看起来类似于下面的图像。

Visualizing the model in DL4J UI.

在DL4J UI中可视化模型。
有关更多信息和用法,请参阅Deeplarning4j UI文档。
Tensorboard中TensorFlow模型的可视化
SKIL预先打包了TensorBoard,允许你可视化TensorFlow模型的训练。在笔记本中进行训练时,你可以以标准方式使用Tensorboard:

# bare metal installation
tensorboard --logdir=path/to/log-directory

# when using Docker, manually start a TensorBoard instance
docker exec -it skil_container /bin/bash
tensorboard --logdir=path/to/log-directory

有关完整用法和示例,请参阅Tensorboard文档

 

解释器功能
由于笔记本由ApacheZeppelin提供,许多内置可视化功能可用于结构化和非结构化数据。这是一个提供演示的可视化效果的示例笔记本
使用SQL可以实现最简单的可视化。如果在笔记本中创建一个%sql单元,并对Spark RDD或任何其他缓存数据执行SQL查询,则可以很容易地以原始表格格式查看输出。

 

%sql

select numPositions, count(1) value
from stats 
where numPositions < 65
group by numPositions
order by numPositions

 

如果你喜欢手动使用内置可视化功能,还可以通过使输出以%table 开头并用\t 分隔每行数据来打印表。

%spark

println("%table\nx\ty")
(1 to 340).map(i => i.toDouble / 50).map(x => (x, Math.sin(x))).foreach{case (x,y) => println(x + "\t" + y)}

 

数据摘要

除了Zeppelin支持的内置功能外,SKIL还允许你对输入数据进行DataVec分析,并计算数据集的统计信息。你可以以内联方式呈现结果,也可以查看端口9508。如果使用docker,请记住在运行你的SKIL容器之前添加-p 9508:9508。

 

%spark

import org.datavec.spark.transform.AnalyzeSpark
import org.datavec.api.transform.ui.HtmlAnalysis
import java.io.File

val dataAnalysis = AnalyzeSpark.analyze(tp.getFinalSchema(), processedData, 10)

// 提交到文件
HtmlAnalysis.createHtmlAnalysisFile(dataAnalysis, new File("/opt/skil/plugins/files/sf-analysis.html"))

// 提交内联
print("%html <iframe src=\"http://localhost:9508/files/sf-analysis.html\"></iframe>")

 

结果将像一个常规的HTML页面,其中包含列和数据集统计信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值