资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

8.可视化工具

简介

为了能更好的展示模型结构、可视化模型指标,方便用户把控训练流程,文心接入了飞桨提供的VisualDL可视化工具包,并对其进行了封装。可视化主要分为两个部分,第一部分是文心在训练过程中将模型评估指标按飞桨VisualDL所要求的格式保存到指定路径;第二部分是用户在自己的机器上启动飞桨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/

eval

  • 如果需要可视化模型的网络结构,那么首先将你自己保存好的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__

    model

  • Ernie的网络因为文心底层做了些处理,目前暂不支持网络结构的可视化。

注意:如果在镜像中启动visualdl,需要在启动镜像时将visualdl启动的端口(例如上述的8088端口)进行映射,使用的命令是在docker run -d -p 8088:8088 xxx

上一篇
7.实战演练:使用文心模型预测
下一篇
9.快速使用公有云平台训练模型