8.可视化工具
简介
为了能更好的展示模型结构、可视化模型指标,方便用户把控训练流程,文心接入了飞桨提供的VisualDL可视化工具包,并对其进行了封装。可视化主要分为两个部分,第一部分是文心在训练过程中将模型评估指标按飞桨VisualDL所要求的格式保存到指定路径;第二部分是用户在自己的机器上启动飞桨VisualDL的服务,指定到文心的文件路径,然后通过浏览器渲染指标结果。
准备工作
-
准备环境
-
数据准备
与普通训练任务一致,不再赘述。
-
配置参数
与通用任务的json配置一致,这里以CNN分类的训任务cls_cnn_ch.json为例,如下图所示,如果需要保存可视化log,在json配置文件的trainer节点中将metrics_visual设置为true(默认为false),visual_log_dir为log保存路径(默认为./visual_log)。
可视化log保存的内容为用户的model文件中、 get_metrics接口所返回的dict中的每一项指标值。需要注意的是,目前指标可视化只能展示数值类型的标量值,如int,float,double,其他数据类型(如numpy,array等)会抛异常。
{ ...... "model": { "type": "CnnClassification", "optimization": { "learning_rate": 2e-05 }, "vocab_size": 33261, "num_labels": 2 }, "trainer": { "PADDLE_USE_GPU": 0, "PADDLE_IS_LOCAL": 1, "train_log_step": 20, "is_eval_dev": 0, "is_eval_test": 1, "eval_step": 100, "save_model_step": 10000, "load_parameters": "", "load_checkpoint": "", "use_fp16": 0, "pre_train_model": [], "output_path": "./output/cls_cnn_ch", "metrics_visual": true, ## 是否使用可视化工具 "visual_log_dir": "./visual_log", ## 可视化评估结果输出路径 "extra_param": { "meta":{ "job_type": "text_classification" } } } }
开始使用
-
按正常的训练脚本启动训练任务即可,任务运行过程中,可视化日志会保存到visual_log_dir对应的目录下。
# 基于json实现预置网络训练。其调用了配置文件./examples/cls_cnn_ch.json(配置了metrics_visual的json) python run_with_json.py --param_path ./examples/cls_cnn_ch.json
-
找到你自己安装的VisualDL路径,执行一下命令:
visualdl --logdir visual_log_dir --host 0.0.0.0 --port 8088
- 查看你当前机器的IP地址,然后在浏览器中输入http://ip:8088/
-
如果需要可视化模型的网络结构,那么首先将你自己保存好的save_inference_model/路径下的model文件重命名为model , 然后执行 如下命令:
visualdl --host 0.0.0.0 --port 8088 --model __model__
-
如果需要同时可视化指标和网络结构,则执行如下命令:
visualdl --logdir visual_log_dir --host 0.0.0.0 --port 8088 --model __model__
- Ernie的网络因为文心底层做了些处理,目前暂不支持网络结构的可视化。
注意:如果在镜像中启动visualdl,需要在启动镜像时将visualdl启动的端口(例如上述的8088
端口)进行映射,使用的命令是在docker run -d -p 8088:8088 xxx