【一】AI Studio 项目详解【(一)VisualDL工具、环境使用说明、脚本任务、图形化任务、在线部署及预测】PARL | 您所在的位置:网站首页 › visualdl用法 › 【一】AI Studio 项目详解【(一)VisualDL工具、环境使用说明、脚本任务、图形化任务、在线部署及预测】PARL |
相关文章 【一】-环境配置+python入门教学 【二】-Parl基础命令 【三】-Notebook、&pdb、ipdb 调试 【四】-强化学习入门简介 【五】-Sarsa&Qlearing详细讲解 【六】-DQN 【七】-Policy Gradient 【八】-DDPG 【九】-四轴飞行器仿真 飞桨PARL_2.0&1.8.5(遇到bug调试修正) 一、AI Studio 项目详解【VisualDL工具】 二、AI Studio 项目详解【环境使用说明、脚本任务】 三、AI Studio 项目详解【分布式训练-单机多机】 四、AI Studio 项目详解【图形化任务】 五、AI Studio 项目详解【在线部署及预测】 AI Studio 项目详解【VisualDL工具】 1.VisualDL工具VisualDL是一个面向深度学习任务设计的可视化工具。VisualDL 利用了丰富的图表来展示数据,用户可以更直观、清晰地查看数据的特征与变化趋势,有助于分析数据、及时发现错误,进而改进神经网络模型的设计。喜欢的同学可以去star支持一下哦~ AI Studio Notebook 项目(Paddle1.8.0及以上版本)已经集成VisualDL工具以便于您的使用,可在可视化tab中启动VisualDL服务。 VisualDL 支持 scalar, image, audio, graph, histogram, pr curve, high dimensional 七个组件。 ![]() 详细操作链接:https://aistudio.baidu.com/aistudio/projectdetail/1739945 Step1 训练代码中增加 Loggers 来记录不同种类的数据. 注意我们的logdir = "./log", 即需要把log目录放到/home/aistudio/log. from visualdl import LogWriter if __name__ == '__main__': value = [i/1000.0 for i in range(1000)] # 初始化一个记录器 with LogWriter(logdir="./log/scalar_test/train") as writer:Step2 训练过程中插入数据打点语句,将结果储存至日志文件中 for step in range(1000): # 向记录器添加一个tag为`acc`的数据 writer.add_scalar(tag="acc", step=step, value=value[step]) # 向记录器添加一个tag为`loss`的数据 writer.add_scalar(tag="loss", step=step, value=1/(value[step] + 1))Step3 切换到「可视化」页签,指定日志文件与模型文件(不指定日志文件无法启动VisualDL) 创建日志文件LogWriter,设置实验结果存放路径,默认上一级路径为'./home/aistudio'训练过程中插入数据打点语句,将结果储存至日志文件中切换到「可视化」页签,指定日志文件与模型文件(不指定日志文件无法启动VisualDL)
可以选择多个,后缀为log的文件。 选择模型文件(适用于graph)
具体码源编写情况见链接:https://aistudio.baidu.com/aistudio/projectdetail/1739945 训练网络并使用VisualDL2.0可视化训练过程 创建LeNet日志文件: writer = LogWriter("./log/lenet") 训练过程中插入作图语句,展示accuracy和loss的变化趋势: writer.add_scalar(tag="train/loss", step=step, value=cost) writer.add_scalar(tag="train/acc", step=step, value=accuracy) 创建多组子日志文件,以相同tag名记录同一类参数,实现多组实验对比: writer=LogWriter('paddle_lenet_log/lr0.001') writer1=LogWriter('paddle_lenet_log/lr0.01') writer2=LogWriter('paddle_lenet_log/lr0.05') writer3=LogWriter('paddle_lenet_log/lr0.1') writer.add_scalar(tag="train/loss", step=step, value=cost) writer.add_scalar(tag="train/acc", step=step, value=accuracy) writer1.add_scalar(tag="train/loss", step=step, value=cost) writer1.add_scalar(tag="train/acc", step=step, value=accuracy) writer2.add_scalar(tag="train/loss", step=step, value=cost) writer2.add_scalar(tag="train/acc", step=step, value=accuracy) writer3.add_scalar(tag="train/loss", step=step, value=cost) writer3.add_scalar(tag="train/acc", step=step, value=accuracy) 记录每一批次中的第一张图片: img = np.reshape(batch[0][0], [28, 28, 1]) * 255 writer.add_image(tag="train/input", step=step, img=img) 记录训练过程中每一层网络权重(weight)、偏差(bias)的变化趋势: writer.add_histogram(tag='train/{}'.format(param), step=step, values=values) 记录分类效果--precision & recall曲线: writer.add_pr_curve(tag='train/class_{}_pr_curve'.format(i), labels=label_i, predictions=prediction_i, step=step, num_thresholds=20) 保存模型结构: fluid.io.save_inference_model(dirname='./model', feeded_var_names=['img'],target_vars=[predictions], executor=exe) 1.3 Scalar-标量组件Scalar 组件的输入数据类型为标量,该组件的作用是将训练参数以折线图形式呈现。将损失函数值、准确率等标量数据作为参数传入 scalar 组件,即可画出折线图,便于观察变化趋势。 记录接口 Scalar 组件的记录接口如下: add_scalar(tag, value, step, walltime=None)接口参数说明如下: *注意tag的使用规则为: 第一个/前的为父tag,并作为一栏图片的tag第一个/后的为子tag,子tag的对应图片将显示在父tag下可以使用多次/,但一栏图片的tag依旧为第一个/前的tag 创建train为父tag,acc和loss为子tag:train/acc、 train/loss,即创建了tag为train的图片栏,包含acc和loss两张图片:举例demo基础使用: from visualdl import LogWriter if __name__ == '__main__': value = [i/1000.0 for i in range(1000)] # 初始化一个记录器 with LogWriter(logdir="./log/scalar_test/train") as writer: for step in range(1000): # 向记录器添加一个tag为`acc`的数据 writer.add_scalar(tag="acc", step=step, value=value[step]) # 向记录器添加一个tag为`loss`的数据 writer.add_scalar(tag="loss", step=step, value=1/(value[step] + 1)) 多组实验对比下面展示了使用Scalar组件实现多组实验对比 多组实验对比的实现分为两步: 创建子日志文件储存每组实验的参数数据将数据写入scalar组件时,使用相同的tag,即可实现对比不同实验的同一类型参数 from visualdl import LogWriter if __name__ == '__main__': value = [i/1000.0 for i in range(1000)] # 步骤一:创建父文件夹:log与子文件夹:scalar_test with LogWriter(logdir="./log/scalar_test") as writer: for step in range(1000): # 步骤二:向记录器添加一个tag为`train/acc`的数据 writer.add_scalar(tag="train/acc", step=step, value=value[step]) # 步骤二:向记录器添加一个tag为`train/loss`的数据 writer.add_scalar(tag="train/loss", step=step, value=1/(value[step] + 1)) # 步骤一:创建第二个子文件夹scalar_test2 value = [i/500.0 for i in range(1000)] with LogWriter(logdir="./log/scalar_test2") as writer: for step in range(1000): # 步骤二:在同样名为`train/acc`下添加scalar_test2的accuracy的数据 writer.add_scalar(tag="train/acc", step=step, value=value[step]) # 步骤二:在同样名为`train/loss`下添加scalar_test2的loss的数据 writer.add_scalar(tag="train/loss", step=step, value=1/(value[step] + 1))运行上述程序后,点击可视化选择相应日志文件即可查看以下折线图,观察scalar_test和scalar_test2的accuracy和loss的对比。 可进行数据流选择 Image 组件用于显示图片数据随训练的变化。在模型训练过程中,将图片数据传入 Image 组件,就可在 VisualDL 的前端网页查看相应图片。 记录接口 Image 组件的记录接口如下: add_image(tag, img, step, walltime=None)接口参数说明如下: 1.5 Audio--音频播放组件 Audio组件实时查看训练过程中的音频数据,监控语音识别与合成等任务的训练过程。 记录接口 Audio 组件的记录接口如下: add_audio(tag, audio_array, step, sample_rate)接口参数说明如下: Graph组件一键可视化模型的网络结构。用于查看模型属性、节点信息、节点输入输出等,并进行节点搜索,协助开发者们快速分析模型结构与了解数据流向。 在生成Model文件后,在可视化模块中选择模型文件,启动后即可查看网络结构可视化: Histogram组件以直方图形式展示Tensor(weight、bias、gradient等)数据在训练过程中的变化趋势。深入了解模型各层效果,帮助开发者精准调整模型结构。 记录接口 Histogram 组件的记录接口如下: add_histogram(tag, values, step, walltime=None, buckets=10)接口参数说明如下: 可选择Offset或Overlay模式
数据点Hover展示参数值、训练步数、频次 在第240次训练步数时,权重为-0.0031,且出现的频次是2734次1.8 PR Curve--PR曲线组件 PR Curve以折线图形式呈现精度与召回率的权衡分析,清晰直观了解模型训练效果,便于分析模型是否达到理想标准。 记录接口 PR Curve组件的记录接口如下: add_pr_curve(tag, labels, predictions, step=None, num_thresholds=10)接口参数说明如下: 数据点Hover展示详细信息:阈值对应的TP、TN、FP、FN 其中,列对应于实例实际所属的类别,行表示分类预测的类别。 TP(True Positive):指正确分类的正样本数,即预测为正样本,实际也是正样本。FP(False Positive):指被错误的标记为正样本的负样本数,即实际为负样本而被预测为正样本,所以是False。TN(True Negative):指正确分类的负样本数,即预测为负样本,实际也是负样本。FN(False Negative):指被错误的标记为负样本的正样本数,即实际为正样本而被预测为负样本,所以是False。TP+FP+TN+FN:样本总数。TP+FN:实际正样本数。TP+FP:预测结果为正样本的总数,包括预测正确的和错误的。FP+TN:实际负样本数。TN+FN:预测结果为负样本的总数,包括预测正确的和错误的 1.9 High Dimensional-数据降维组件High Dimensional 组件将高维数据进行降维展示,用于深入分析高维数据间的关系。目前支持以下两种降维算法: PCA : Principle Component Analysis 主成分分析t-SNE : t-distributed stochastic neighbor embedding t-分布式随机领域嵌入记录接口 High Dimensional 组件的记录接口如下: add_embeddings(tag, labels, hot_vectors, walltime=None)参考链接:https://ai.baidu.com/ai-doc/AISTUDIO/Dk3e2vxg9 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |