昇腾社区首页
中文
注册

训练业务流程

典型训练业务流程

典型的训练业务流程通常包括模型准备、数据准备、训练执行和模型保存。

  • 模型准备:使用NN框架的自定义表达构造神经网络和损失函数,指定合适的优化器定义梯度计算和优化算法。
  • 数据准备:在数据准备阶段,有导入数据文件,解析数据,对数据预处理等环节。NN框架封装了常见的数据预处理和增强操作,同时允许用户使用第三方库或自定义数据读取和预处理操作。
  • 训练模型:根据模型准备环节定义的模型结构,进行模型初始化,并支持从模型文件恢复预训练模型;读取训练数据,进入多轮次的训练迭代。训练的过程中评估模型的准确度,达到一定的阀值后可以停止训练,保存训练好的模型。

各组件交互流程

图1 交互流程
  1. 当用户执行训练代码后,TensorFlow 前端会根据用户提供的训练脚本, 生成训练模型 ,读取指定路径下的 checkpoint 文件完成模型权重初始化或随机初始化。
  2. 随后,框架前端会通过TF Adapter调用GE初始化接口,完成设备打开、计算引擎初始化、算子信息库初始化等操作,然后,将前端训练模型转换为IR格式的模型,并启动模型编译和执行;在图优化引擎GE中,它还会完成Shape推导、常量折叠、算子融合等优化操作。在完成图优化后会根据算子信息库将计算图拆分为不同的子图,每个子图都可以执行在同一个设备上,如GE会调用FE接口完成 AICORE 计算算子编译,调用AICPU接口完成AICPU计算算子编译,调用集合通信接口(HCCL)完成集合通信算子编译。而在每一个具体模块中,也会进行特定的子图优化。
  3. 待计算图的编译和优化都完成后,GE 会调用Runtime接口分配运行资源,包含内存、 Stream、Event等,待计算资源分配完成后,交由RunTime运行时对资源进行管理。