代码模板升级及迁移说明

全功能AI开发平台 BML

  • 版本发布记录
  • 快速开始
    • 用BML实现表格预测
    • 用BML实现序列标注
    • 用BML实现文本实体抽取
    • 用BML实现图片分类
    • 用BML实现实例分割
    • 用BML评价短文本相似度
    • 用BML实现开源大模型的预训练(Post-pretrain)
    • 用BML实现文本分类
    • 用BML实现物体检测
  • 模型仓库
    • 从训练任务导入模型
    • 查看模型
    • 创建模型
    • 模型仓库简介
    • 从本地导入模型
    • 校验模型
    • 服务代码文件示例
      • Sklearn服务代码文件示例
      • XGBoost服务代码文件示例
  • 平台管理
    • 权限管理
    • 在BML平台使用并行文件系统PFS和对象存储BOS
    • 在BML平台使用容器镜像服务CCR
    • 在BML使用外部镜像
    • 项目空间管理
    • 镜像管理
      • 镜像使用
      • 镜像管理简介
      • 常见问题
      • 自定义镜像
    • 资源管理
      • 资源池管理简介
      • 资源池使用简介
  • 预测部署
    • 批量预测(用户资源池)API
    • 文字识别模型部署
      • 文字识别任务API参考文档
      • 文字识别任务公有云部署
    • 通用模型部署
      • 标准接口规范参考
      • Paddle框架API调用文档
      • sklearn框架API调用文档
      • 公有云部署
      • XGBoost框架API调用文档
      • tensorflow框架API调用文档
      • Pytorch框架API调用文档
      • 通用类模型API参考
      • 错误码
    • 语音技术模型部署
      • 声音分类API调用文档
    • 视觉模型部署
      • 智能边缘控制台-多节点版
      • 端云协同服务部署
      • 智能边缘控制台-单节点版
      • 视觉任务模型部署整体说明
      • 软硬一体方案部署
        • 视觉任务Jetson专用SDK集成文档
        • 如何获取视觉任务软硬一体产品
        • 视觉任务EdgeBoard(VMX)专用SDK集成文档
        • 视觉任务EdgeBoard(FZ)专用SDK集成文档
        • 视觉任务专用辨影SDK集成开发文档
      • 私有服务器部署
        • 视觉模型如何部署在私有服务器
        • 私有API
          • 如何发布私有API
          • 图像分类-单图单标签私有API集成文档
          • 图像分类-单图多标签私有API集成文档
          • 物体检测私有API集成文档
        • 服务器端SDK
          • 视觉任务服务器端LinuxSDK集成文档-Python
          • 视觉任务服务器端LinuxSDK集成文档-C++
          • 如何发布服务器端SDK
          • 视觉任务服务器端WindowsSDK集成文档
          • 视觉任务服务器端SDK简介
      • 设备端SDK部署
        • 视觉任务WindowsSDK集成文档
        • 视觉任务iOSSDK集成文档
        • 视觉任务LinuxSDK集成文档-Python
        • 视觉任务LinuxSDK集成文档-C++
        • 视觉任务设备端SDK使用说明
        • 如何发布视觉任务设备端SDK
        • 视觉任务AndroidSDK集成文档
      • 公有云部署
        • 文字识别API参考文档
        • 视觉任务公有云部署
        • 物体检测API参考文档
        • 图像分类-单图单标签API参考文档
        • 实例分割API参考文档
        • 图像分类-单图多标签API参考文档
    • 表格预测模型部署
      • 整体说明
      • 公有云部署
    • 公有云部署管理
      • 配置AB测试版本
      • 批量预测服务
      • 公有云部署
      • 公有云部署简介
      • 配置休眠策略
    • NLP模型部署
      • 自然语言处理任务模型部署整体说明
      • 私有服务器部署
        • 如何部署在私有服务器
        • 私有服务API说明
          • 私有部署说明-短文本相似度
          • 私有化部署接口说明-文本分类
          • 私有部署文档-序列标注
          • 文本实体抽取API调用文档
      • 公有云部署
        • 短文本匹配API调用文档
        • 文本实体抽取私有API调用说明
        • 如何发布自然语言处理任务API
        • 文本分类-多标签API调用文档
        • 文本分类API调用文档
        • 序列标注API调用文档
  • 数据服务
    • 数据服务简介
    • 智能数据API
    • 公有云服务调用数据反馈
    • 智能标注
      • 文本智能标注介绍及原理说明
      • 图像智能标注介绍说明
    • 管理视觉数据
      • 实例分割数据导入与标注
        • 数据标注说明
        • 导入未标注数据
        • 导入已标注数据
      • 物体检测数据导入与标注
        • 物体检测数据标注说明
        • 物体检测导入未标注数据
        • 物体检测导入已标注数据
      • 图像分类数据导入与标注
        • 图像分类导入未标注数据
        • 图像分类导入已标注数据
        • 图像分类数据标注说明
    • 管理文本数据
      • 文本分类数据导入与标注
        • 文本分类数据标注说明
        • 文本分类数据导入与标注
        • 数据去重策略
      • 序列标注数据导入与标注
        • 序列标注标注说明
        • 序列标注数据导入
        • 数据去重策略
      • 文本实体抽取数据标注
        • 文本实体抽取数据标注
        • 文本实体抽取数据导入
        • 数据去重策略
      • 短文本匹配数据导入与标注
        • 短文本匹配数据导入与标注
        • 数据去重策略说明
        • 短文本匹配数据标注
  • 产品简介
    • BML平台升级公告
    • 平台重点升级介绍
    • 产品优势
    • 产品功能
    • 什么是BML
    • 文心大模型
  • 产品定价
    • 服务器部署价格说明
    • 专项适配硬件部署价格说明
    • 公有云部署计费说明
    • 批量预测计费说明
    • 模型训练计费说明
    • 通用小型设备部署价格说明
  • 模型训练
    • Notebook建模
      • 创建并启动Notebook
      • Notebook导入数据集
      • 保存Notebook中的模型
      • Notebook使用参考
      • 常见问题
      • 数据模型可视化功能说明
      • Notebook简介
      • 发布模型
      • 配置模型
      • 使用Notebook开发模型
      • 如何使用Notebook SSH 功能
      • Notebook从训练到部署快速入门
        • Codelab Notebook自定义环境部署最佳实践
        • 基于Notebook的图像分类模板使用指南
        • 基于 Notebook 的 NLP 通用模板使用指南
        • Notebook 模板使用指南概述
        • 基于 Notebook 的通用模板使用指南
        • 基于 Notebook 的物体检测模板使用指南
    • 自定义作业建模
      • 自定义作业简介
      • 训练作业API
      • 训练作业
        • 使用训练作业训练模型
        • 创建训练作业
        • 发布模型
        • 训练作业代码示例
          • TensorFlow 1.13.2
          • AIAK- Training Pytorch版
          • TensorFlow 2.3.0
          • Blackhole 1.0.0
          • Pytorch 1.7.1
          • Sklearn 0.23.2
          • XGBoost 1.3.1
          • PaddlePaddle 2.0.0rc
      • 自动搜索作业
        • 创建自动搜索作业
        • yaml文件编写规范
        • 自动搜索作业简介
        • 自动搜索作业代码编写规范
        • 自动搜索作业代码示例
          • XGBoost 1.3.1代码规范
          • TensorFlow 1.13.2代码规范
          • Sklearn 0.23.2代码规范
          • Pytorch 1.7.1代码规范
          • Tensorflow2.3.0代码规范
          • PaddlePaddle 2.1.1代码规范
    • 可视化建模
      • 快速入门
      • 概述
      • 组件菜单
        • 001-基本操作
        • 003-查看模型特征溯源
        • 007-组件状态
        • 008-组件资源配置
        • 006-组件列选择
        • 002-查看模型可解释性
        • 004-查看特征重要性
      • 组件说明
        • 015-图算法
        • 004-特征工程组件
        • 003-数据处理组件
        • 012-预测组件
        • 008-聚类算法
        • 009-Python算法组件
        • 002-数据集组件
        • 014-自然语言处理组件
        • 010-NLP算法
        • 016-统计分析组件
        • 006-回归算法
        • 007-异常检测算法
        • 013-模型评估组件
        • 005-分类算法
        • 018-时间序列组件
      • 画布操作说明
        • 005-AutoML(自动调参)
        • 002-开始训练
        • 001-概述
    • 预置模型调参建模
      • 预置模型调参简介
      • 神经网络训练搜索
      • 开发视觉模型
        • 视觉任务简介
        • 查看训练结果
        • 创建视觉任务
        • 配置视觉任务
        • 开发参考
          • 视觉预训练模型
          • 超参数配置参考
          • 评估报告参考
          • 自动超参搜索配置参考
          • 数据增强算子参考
          • 训练时长设置参考
          • 网络选型参考
      • 开发表格预测模型
        • 创建表格预测任务
        • 配置专家模式表格数据预测任务
        • 查看训练结果
        • 配置AUTOML模式表格数据预测任务
        • 表格预测任务简介
      • 开发文字识别模型
        • 文字识别任务简介
        • 文字识别任务操作流程
      • 开发自然语言处理模型
        • 查看训练结果
        • 自然语言处理任务简介
        • 配置NLP任务
        • 创建NLP任务
        • 代码模板升级及迁移说明
所有文档
menu
没有找到结果,请重新输入

全功能AI开发平台 BML

  • 版本发布记录
  • 快速开始
    • 用BML实现表格预测
    • 用BML实现序列标注
    • 用BML实现文本实体抽取
    • 用BML实现图片分类
    • 用BML实现实例分割
    • 用BML评价短文本相似度
    • 用BML实现开源大模型的预训练(Post-pretrain)
    • 用BML实现文本分类
    • 用BML实现物体检测
  • 模型仓库
    • 从训练任务导入模型
    • 查看模型
    • 创建模型
    • 模型仓库简介
    • 从本地导入模型
    • 校验模型
    • 服务代码文件示例
      • Sklearn服务代码文件示例
      • XGBoost服务代码文件示例
  • 平台管理
    • 权限管理
    • 在BML平台使用并行文件系统PFS和对象存储BOS
    • 在BML平台使用容器镜像服务CCR
    • 在BML使用外部镜像
    • 项目空间管理
    • 镜像管理
      • 镜像使用
      • 镜像管理简介
      • 常见问题
      • 自定义镜像
    • 资源管理
      • 资源池管理简介
      • 资源池使用简介
  • 预测部署
    • 批量预测(用户资源池)API
    • 文字识别模型部署
      • 文字识别任务API参考文档
      • 文字识别任务公有云部署
    • 通用模型部署
      • 标准接口规范参考
      • Paddle框架API调用文档
      • sklearn框架API调用文档
      • 公有云部署
      • XGBoost框架API调用文档
      • tensorflow框架API调用文档
      • Pytorch框架API调用文档
      • 通用类模型API参考
      • 错误码
    • 语音技术模型部署
      • 声音分类API调用文档
    • 视觉模型部署
      • 智能边缘控制台-多节点版
      • 端云协同服务部署
      • 智能边缘控制台-单节点版
      • 视觉任务模型部署整体说明
      • 软硬一体方案部署
        • 视觉任务Jetson专用SDK集成文档
        • 如何获取视觉任务软硬一体产品
        • 视觉任务EdgeBoard(VMX)专用SDK集成文档
        • 视觉任务EdgeBoard(FZ)专用SDK集成文档
        • 视觉任务专用辨影SDK集成开发文档
      • 私有服务器部署
        • 视觉模型如何部署在私有服务器
        • 私有API
          • 如何发布私有API
          • 图像分类-单图单标签私有API集成文档
          • 图像分类-单图多标签私有API集成文档
          • 物体检测私有API集成文档
        • 服务器端SDK
          • 视觉任务服务器端LinuxSDK集成文档-Python
          • 视觉任务服务器端LinuxSDK集成文档-C++
          • 如何发布服务器端SDK
          • 视觉任务服务器端WindowsSDK集成文档
          • 视觉任务服务器端SDK简介
      • 设备端SDK部署
        • 视觉任务WindowsSDK集成文档
        • 视觉任务iOSSDK集成文档
        • 视觉任务LinuxSDK集成文档-Python
        • 视觉任务LinuxSDK集成文档-C++
        • 视觉任务设备端SDK使用说明
        • 如何发布视觉任务设备端SDK
        • 视觉任务AndroidSDK集成文档
      • 公有云部署
        • 文字识别API参考文档
        • 视觉任务公有云部署
        • 物体检测API参考文档
        • 图像分类-单图单标签API参考文档
        • 实例分割API参考文档
        • 图像分类-单图多标签API参考文档
    • 表格预测模型部署
      • 整体说明
      • 公有云部署
    • 公有云部署管理
      • 配置AB测试版本
      • 批量预测服务
      • 公有云部署
      • 公有云部署简介
      • 配置休眠策略
    • NLP模型部署
      • 自然语言处理任务模型部署整体说明
      • 私有服务器部署
        • 如何部署在私有服务器
        • 私有服务API说明
          • 私有部署说明-短文本相似度
          • 私有化部署接口说明-文本分类
          • 私有部署文档-序列标注
          • 文本实体抽取API调用文档
      • 公有云部署
        • 短文本匹配API调用文档
        • 文本实体抽取私有API调用说明
        • 如何发布自然语言处理任务API
        • 文本分类-多标签API调用文档
        • 文本分类API调用文档
        • 序列标注API调用文档
  • 数据服务
    • 数据服务简介
    • 智能数据API
    • 公有云服务调用数据反馈
    • 智能标注
      • 文本智能标注介绍及原理说明
      • 图像智能标注介绍说明
    • 管理视觉数据
      • 实例分割数据导入与标注
        • 数据标注说明
        • 导入未标注数据
        • 导入已标注数据
      • 物体检测数据导入与标注
        • 物体检测数据标注说明
        • 物体检测导入未标注数据
        • 物体检测导入已标注数据
      • 图像分类数据导入与标注
        • 图像分类导入未标注数据
        • 图像分类导入已标注数据
        • 图像分类数据标注说明
    • 管理文本数据
      • 文本分类数据导入与标注
        • 文本分类数据标注说明
        • 文本分类数据导入与标注
        • 数据去重策略
      • 序列标注数据导入与标注
        • 序列标注标注说明
        • 序列标注数据导入
        • 数据去重策略
      • 文本实体抽取数据标注
        • 文本实体抽取数据标注
        • 文本实体抽取数据导入
        • 数据去重策略
      • 短文本匹配数据导入与标注
        • 短文本匹配数据导入与标注
        • 数据去重策略说明
        • 短文本匹配数据标注
  • 产品简介
    • BML平台升级公告
    • 平台重点升级介绍
    • 产品优势
    • 产品功能
    • 什么是BML
    • 文心大模型
  • 产品定价
    • 服务器部署价格说明
    • 专项适配硬件部署价格说明
    • 公有云部署计费说明
    • 批量预测计费说明
    • 模型训练计费说明
    • 通用小型设备部署价格说明
  • 模型训练
    • Notebook建模
      • 创建并启动Notebook
      • Notebook导入数据集
      • 保存Notebook中的模型
      • Notebook使用参考
      • 常见问题
      • 数据模型可视化功能说明
      • Notebook简介
      • 发布模型
      • 配置模型
      • 使用Notebook开发模型
      • 如何使用Notebook SSH 功能
      • Notebook从训练到部署快速入门
        • Codelab Notebook自定义环境部署最佳实践
        • 基于Notebook的图像分类模板使用指南
        • 基于 Notebook 的 NLP 通用模板使用指南
        • Notebook 模板使用指南概述
        • 基于 Notebook 的通用模板使用指南
        • 基于 Notebook 的物体检测模板使用指南
    • 自定义作业建模
      • 自定义作业简介
      • 训练作业API
      • 训练作业
        • 使用训练作业训练模型
        • 创建训练作业
        • 发布模型
        • 训练作业代码示例
          • TensorFlow 1.13.2
          • AIAK- Training Pytorch版
          • TensorFlow 2.3.0
          • Blackhole 1.0.0
          • Pytorch 1.7.1
          • Sklearn 0.23.2
          • XGBoost 1.3.1
          • PaddlePaddle 2.0.0rc
      • 自动搜索作业
        • 创建自动搜索作业
        • yaml文件编写规范
        • 自动搜索作业简介
        • 自动搜索作业代码编写规范
        • 自动搜索作业代码示例
          • XGBoost 1.3.1代码规范
          • TensorFlow 1.13.2代码规范
          • Sklearn 0.23.2代码规范
          • Pytorch 1.7.1代码规范
          • Tensorflow2.3.0代码规范
          • PaddlePaddle 2.1.1代码规范
    • 可视化建模
      • 快速入门
      • 概述
      • 组件菜单
        • 001-基本操作
        • 003-查看模型特征溯源
        • 007-组件状态
        • 008-组件资源配置
        • 006-组件列选择
        • 002-查看模型可解释性
        • 004-查看特征重要性
      • 组件说明
        • 015-图算法
        • 004-特征工程组件
        • 003-数据处理组件
        • 012-预测组件
        • 008-聚类算法
        • 009-Python算法组件
        • 002-数据集组件
        • 014-自然语言处理组件
        • 010-NLP算法
        • 016-统计分析组件
        • 006-回归算法
        • 007-异常检测算法
        • 013-模型评估组件
        • 005-分类算法
        • 018-时间序列组件
      • 画布操作说明
        • 005-AutoML(自动调参)
        • 002-开始训练
        • 001-概述
    • 预置模型调参建模
      • 预置模型调参简介
      • 神经网络训练搜索
      • 开发视觉模型
        • 视觉任务简介
        • 查看训练结果
        • 创建视觉任务
        • 配置视觉任务
        • 开发参考
          • 视觉预训练模型
          • 超参数配置参考
          • 评估报告参考
          • 自动超参搜索配置参考
          • 数据增强算子参考
          • 训练时长设置参考
          • 网络选型参考
      • 开发表格预测模型
        • 创建表格预测任务
        • 配置专家模式表格数据预测任务
        • 查看训练结果
        • 配置AUTOML模式表格数据预测任务
        • 表格预测任务简介
      • 开发文字识别模型
        • 文字识别任务简介
        • 文字识别任务操作流程
      • 开发自然语言处理模型
        • 查看训练结果
        • 自然语言处理任务简介
        • 配置NLP任务
        • 创建NLP任务
        • 代码模板升级及迁移说明
  • 文档中心
  • arrow
  • 全功能AI开发平台BML
  • arrow
  • 模型训练
  • arrow
  • 预置模型调参建模
  • arrow
  • 开发自然语言处理模型
  • arrow
  • 代码模板升级及迁移说明
本页目录
  • 一、代码模板升级整体说明
  • 二、如何操作迁移到新版任务下
  • 三、新老版本的代码编辑模板区别说明
  • 3.1 旧版代码模板说明
  • 1. 模型训练的配置信息
  • 2. 网络设计中ERNIE表示的代码部分
  • 3. 网络设计中BOW的模型表示代码部分
  • 4. 网络设计中分类器的代码部分
  • 5. 网络设计中预测部分的内容
  • 6. 网络设计中评估部分的代码
  • 3.2 新版代码模板说明
  • 1. 新版本代码结构:模型训练的配置信息
  • 2. 新版本代码结构:数据读入的部分
  • 3. 新版本代码结构:读取ERNIE表示
  • 4. 新版本代码:模型超参数的设置
  • 5. 新版本代码:BOW模型表示部分
  • 6. 新版本代码:分类器部分的代码
  • 7. 新版本代码:预测部分的内容
  • 8. 新版本代码:loss部分的设置

代码模板升级及迁移说明

更新时间:2025-08-21

一、代码模板升级整体说明

平台于2020年4月16日,对自然语言处理模型训练的代码模板进行了升级,建议您在5月1日前完成对旧版任务的迁移。本次升级,平台的自然语言处理任务将为您提供封装性和灵活性俱佳的开发体验,并支持了飞桨深度学习框架Paddle-Fluid 1.6.1的版本。

针对平台升级新版本模型代码框架,请您关注如下几个时间点:

  1. 平台于4月16日,更新上线新版代码框架,暂时保留对旧版任务的克隆功能
  2. 平台于5月1日,将不再提供旧版本代码模板的克隆。当您对旧版代码模板克隆任务时,平台仅提供新版代码框架,请您做好代码的迁移工作。

说明:您在5月1日前,基于旧版本代码模板发布的任务,可长期在线上进行云端调用或本地使用。

后续平台也将基于升级后框架,继续新增任务类型,您可以加入BML用户交流群,针对您在模型开发过程中的需要,提出您所需的功能需求。

二、如何操作迁移到新版任务下

将老版本任务迁移到新版本的任务,以分类任务为例可分为三步:

第一步:查看老版本的任务中,代码编辑部分,存在哪些字段的修改

在任务列表中,找到对应的任务详情:

image.png

在代码配置详情中,找到脚本内容部分,查看修改的代码内容:

image.png

第二步:在平台「自然语言处理」任务列表下,新建项目并新建任务,此任务将会是基于最新的代码模板创建

image.png

第三部:在下图中代码编辑部分,将第一步中对应修改过的代码部分,在新任务中进行逐一调整(关于新版代码模板的说明,详见下文)

image.png

三、新老版本的代码编辑模板区别说明

您可以通过了解旧版本的代码模板和新版本的代码模板的代码结构,来了解两版代码的编写逻辑,从而方便您将旧版本的代码迁移到新版本的代码模板中。我们将以文本分类任务中,使用ERNIE和BOW网络的设计进行讲解说明。

下面我们先看一下旧版本的代码编辑模板的内容:

3.1 旧版代码模板说明

1. 模型训练的配置信息

关于模型训练过程中,关于学习率、batch size等配置,代码如下:

Python
1def __init__(self):
2        Config.__init__(self)
3        self.batch_size = 8  # batch_size大小,尽量设置成2的整数倍
4        self.learning_rate = 2e-5  # 学习率设置
5        self.save_steps = 500  # 模型保存的间隔,即训练多少个batch之后保存一次模型,请设置成100的倍数
6        self.epoch = 3  # 训练多少轮
7        self.skip_steps = 10  # 间隔多少个batch时打印训练日志

组网部分,包括了ERNIE表示、BOW模型表示和分类任务几个部分,代码介绍如下:

2. 网络设计中ERNIE表示的代码部分

Python
1 emb = fluid.layers.sequence_unpad(ernie_output["sequence_output"], length=ernie_input["seq_lens"])

3. 网络设计中BOW的模型表示代码部分

Python
1  # bow layer
2    bow = fluid.layers.sequence_pool(input=emb, pool_type='sum')
3    bow_tanh = fluid.layers.tanh(bow)
4    # full connect layer
5    fc_1 = fluid.layers.fc(input=bow_tanh, size=hid_dim, act="tanh")
6    fc_2 = fluid.layers.fc(input=fc_1, size=hid_dim2, act="tanh")

4. 网络设计中分类器的代码部分

Python
1 logits = fluid.layers.fc(input=fc_2, size=cfg.num_labels)

5. 网络设计中预测部分的内容

Python
1 if is_inference:
2        probs = fluid.layers.softmax(logits)
3        feed_targets_name = [
4            ernie_input["src_ids"].name, ernie_input["sent_ids"].name,
5            ernie_input["pos_ids"].name, ernie_input["input_mask"].name,
6            ernie_input["seq_lens"].name, ernie_input["task_ids"].name
7        ]
8        return feed_targets_name, probs

6. 网络设计中评估部分的代码

Python
1ce_loss, probs = fluid.layers.softmax_with_cross_entropy(
2        logits=logits, label=label, return_softmax=True)
3    loss = fluid.layers.mean(x=ce_loss)
4    graph_vars = {
5        "loss": loss,
6        "classify_infer": probs,
7        "label": label
8    }

3.2 新版代码模板说明

下文中,我们将介绍新升级的代码模板结构,您可以对比新旧版本对应的结构来进行代码的迁移:

1. 新版本代码结构:模型训练的配置信息

Python
1TrainerConfig = {
2    "batch_size": 8, 
3    "learning_rate": 2e-05, 
4    "epoch": 3, 
5    "train_log_step": 10, 
6    "save_model_step": 500
7}

2. 新版本代码结构:数据读入的部分

Python
1 fields_dict = self.fields_process(fields_dict, phase)
2        instance_text_a = fields_dict["text_a"]
3        record_id_text_a = instance_text_a[InstanceName.RECORD_ID]
4        text_a_src = record_id_text_a[InstanceName.SRC_IDS]
5        text_a_pos = record_id_text_a[InstanceName.POS_IDS]
6        text_a_sent = record_id_text_a[InstanceName.SENTENCE_IDS]
7        text_a_mask = record_id_text_a[InstanceName.MASK_IDS]
8        text_a_task = record_id_text_a[InstanceName.TASK_IDS]
9        text_a_lens = record_id_text_a[InstanceName.SEQ_LENS]
10        instance_label = fields_dict["label"]
11        record_id_label = instance_label[InstanceName.RECORD_ID]
12        label = record_id_label[InstanceName.SRC_IDS]

3. 新版本代码结构:读取ERNIE表示

Python
1        
2        emb_dict = self.make_embedding(fields_dict, phase)
3        emb = emb_dict["text_a"]
4        text_a_emb = fluid.layers.sequence_unpad(emb, length=text_a_lens)
5        

4. 新版本代码:模型超参数的设置

Python
1        hid_dim = 128
2        hid_dim2 = 96
3        num_labels = 2

5. 新版本代码:BOW模型表示部分

Python
1   # bow layer
2        bow = fluid.layers.sequence_pool(input=text_a_emb, pool_type='sum')
3        bow_tanh = fluid.layers.tanh(bow)

6. 新版本代码:分类器部分的代码

Python
1        fc_1 = fluid.layers.fc(input=bow_tanh, size=hid_dim, act="tanh")
2        fc_2 = fluid.layers.fc(input=fc_1, size=hid_dim2, act="tanh")
3        logits = fluid.layers.fc(input=fc_2, size=num_labels)

7. 新版本代码:预测部分的内容

Python
1if phase == InstanceName.SAVE_INFERENCE:
2            """保存模型时需要的入参:表示预测时最终输出的结果"""
3            probs = fluid.layers.softmax(logits)
4            target_predict_list = [probs]
5            target_feed_name_list = [text_a_src.name, text_a_pos.name, text_a_sent.name,
6                                     text_a_mask.name, text_a_lens.name]
7            emb_params = self.model_params.get("embedding")
8            ernie_config = ErnieConfig(emb_params.get("config_path"))
9            if ernie_config.get('use_task_id', False):
10                target_feed_name_list.append(text_a_task.name)
11
12            forward_return_dict = {
13                InstanceName.TARGET_FEED_NAMES: target_feed_name_list,
14                InstanceName.TARGET_PREDICTS: target_predict_list
15            }
16            return forward_return_dict

8. 新版本代码:loss部分的设置

Python
1   cost, probs = fluid.layers.softmax_with_cross_entropy(
2            logits=logits, label=label, return_softmax=True)
3        avg_cost = fluid.layers.mean(x=cost)
4        """PREDICT_RESULT,LABEL,LOSS 是关键字,必须要赋值并返回"""

上一篇
创建NLP任务