From 94e6c978a276b31a4dbb8d364a8631dbde5f5556 Mon Sep 17 00:00:00 2001 From: WeibiaoYu Date: Wed, 13 May 2020 04:26:36 -0400 Subject: [PATCH] add guide for checkpoint in hybrid parallel scence --- .../checkpoint_for_hybrid_parallel.md | 612 ++++++++++++++++++ .../images/checkpoint_integration_process.jpg | Bin 0 -> 160394 bytes tutorials/source_zh_cn/index.rst | 3 +- 3 files changed, 614 insertions(+), 1 deletion(-) create mode 100644 tutorials/source_zh_cn/advanced_use/checkpoint_for_hybrid_parallel.md create mode 100644 tutorials/source_zh_cn/advanced_use/images/checkpoint_integration_process.jpg diff --git a/tutorials/source_zh_cn/advanced_use/checkpoint_for_hybrid_parallel.md b/tutorials/source_zh_cn/advanced_use/checkpoint_for_hybrid_parallel.md new file mode 100644 index 00000000..3a174e6e --- /dev/null +++ b/tutorials/source_zh_cn/advanced_use/checkpoint_for_hybrid_parallel.md @@ -0,0 +1,612 @@ + + +# 手动设置并行场景模型参数的保存和加载 + + + +- [手动设置并行场景模型参数的保存和加载](#手动设置并行场景模型参数的保存和加载) + - [概述](#概述) + - [背景](#背景) + - [使用场景](#使用场景) + - [对保存的CheckPoint文件做合并处理](#对保存的checkpoint文件做合并处理) + - [整体流程](#整体流程) + - [准备工作](#准备工作) + - [导入CheckPoint文件到网络](#导入checkpoint文件到网络) + - [获取网络中全量参数列表](#获取网络中全量参数列表) + - [对模型并行的参数做合并处理](#对模型并行的参数做合并处理) + - [保存数据生成新的CheckPoint文件](#保存数据生成新的checkpoint文件) + - [加载合并保存的CheckPoint文件](#加载合并保存的checkpoint文件) + - [整体流程](#整体流程-1) + - [步骤1:加载CheckPoint文件](#步骤1加载checkpoint文件) + - [步骤2:对模型并行参数做切分处理](#步骤2对模型并行参数做切分处理) + - [步骤3:将修改后的参数数据加载到网络中](#步骤3将修改后的参数数据加载到网络中) + - [示例](#示例) + - [示例场景说明](#示例场景说明) + - [示例代码](#示例代码) + + + +## 概述 + +### 背景 + +MindSpore模型并行场景下,每个实例进程只保存有本节点对应的参数数据。对于模型并行的Cell,其在每个节点上的参数数据,都是完整参数数据的一个切片。比如完整参数数据shape为[8, 8],每个节点上的参数数据为其中的一部分,如shape[2, 8]。 + +对于自动切分的模型并行场景(Auto Parallel),切分逻辑由MindSpore自动生成,MindSpore的CheckPoint模块可以支持自动合并保存和基于合并保存的加载能力。 + +对于用户手动设置的并行场景(HyBrid Parallel),切分逻辑由用户自己实现,MindSpore在每个节点只保存本节点上的数据,用户需要自己实现CheckPoint文件的合并保存与加载功能。本教程用于指导用户在手动切分场景下,实现CheckPoint的合并保存与加载能力。 + +### 使用场景 + +如果你遇到如下两个场景,需要参考本教程操作,完成CheckPoint的合并保存与加载: + +场景1:多卡训练,单卡推理。 + + 以在64卡上训练,并在单卡上推理为例,整体操作流程如下: + +1. 执行训练,自动生成CheckPoint文件。 + +2. 用户对保存的CheckPoint文件做合并处理。 + + 根据具体的切分逻辑,对于存在切分的具体模型参数做合并处理,生成新CheckPoint文件。 + +3. 在单卡环境加载新的CheckPoint文件,之后再根据需要调用export接口导出用于推理的模型。 + +若CheckPoint的保存环境和加载环境集群的卡数相同,比如在同一训练环境保存加载CheckPoint,或者单卡训练单卡推理,则可以不需要做合并保存和加载。 + +场景2:训练分为多阶段,每个阶段的集群大小不一样。 + +​ 以训练阶段一是64卡训练环境,阶段二是56卡训练环境为例,整体操作流程如下: + +1. 执行阶段一训练,自动生成CheckPoint文件。 + +2. 用户对保存的CheckPoint文件做合并处理。 + + 根据具体的切分逻辑,对于存在切分的具体模型参数做合并处理,生成新CheckPoint文件。 + +3. 在阶段二集群上加载合并保存的CheckPoint文件。 + + 在加载过程中,用户需要根据新的训练环境配置,重新切分CheckPoint文件中的参数数据。 + +4. 执行阶段二训练。 + + + + +## 对保存的CheckPoint文件做合并处理 + +### 整体流程 + +首先,执行准备工作,将待合并处理的CheckPoint文件导入网络,并通过MindSpore提供的API获取全量参数列表。对应下图中的Step1和Step2。 + +其次,更新参数列表,对涉及模型并行的参数做合并处理。对应下图中的Step3。 + +最后,将更新之后的参数列表,通过MindSpore提供的API保存到文件,生成新的CheckPoint文件。对应下图中的Step4。 + +![img](./images/checkpoint_integration_process.jpg) + +### 准备工作 + +#### 导入CheckPoint文件到网络 + +定义网络,并调用`load_checkpoint`、`load_param_into_net`接口,将CheckPoint文件导入网络。 +``` +param_dict = load_checkpoint(./CKP_1-4_32.ckpt) # checkpoint file name +net = Net() +opt = Momentum(learning_rate=0.01, momentum=0.9, params=net.get_parameters()) +net = TrainOneStepCell(net, opt) +load_param_into_net(net, param_dict) +``` + +其中, + +- `load_checkpoint()`:通过该接口加载CheckPoint模型参数文件,返回一个参数字典。 +- `load_param_into_net()`:模型参数数据加载到网络中。 +- `CKP_1-4_32.ckpt`:之前保存的CheckPoint模型参数文件名称。 + +> 如果直接在训练环境上,基于当前训练得到的数据直接保存新的CheckPoint文件,参数值已经存在在网络中,则可以省略该步骤,无需导入CheckPoint文件。 + +#### 获取网络中全量参数列表 + +调用`parameters_and_names`接口,获取网络里所有的参数数据。 +``` +param_dict = {} +for _, param in net.parameters_and_names(): + param_dict[param.name] = param +``` + +### 对模型并行的参数做合并处理 + +下面以一个具体的模型参数为例,说明下参数合并处理的具体流程。 + +参数名称为"model_parallel_weight",数据为Tensor [[1, 2, 3, 4], [5, 6, 7, 8]]。 + +切分逻辑为4卡场景,按[2, 2]切分,即先在行维度切分为2个切片,之后再对得到的2个切片,分别在列维度分再切分为2个更小的切片,最后得到4个切片。 +切分后数据分布情况如下: + +| Device0 | Device1 | Device2 | Device3 | +| ------------- | ------------ | ------------- | ------------- | +| Value [1, 2] | Value [3, 4] | Value [5, 6] | Value [7, 8] | + +1. 针对涉及模型并行的参数,获取本节点上的数据值。 + + ``` + param_data = param_dict[“model_parallel_weight”] + param_data_moments = param_dict[“moments.model_parallel_weight”] + ``` + > 如果要保证参数更新速度不变,需要对优化器中保存的参数,如“moments.model_parallel_weight”,同样做合并处理。 + +2. 定义AllGather类型子图,并实例化和执行,获取所有卡上的数据。 + + ``` + from mindspore.nn.cell import Cell + from mindspore.ops.operations.comm_ops import AllGather + + class AllGatherCell(Cell): + """ + Allgather cell, used in model parallel scenario. + To allgather the selected parameter slice from each device. + """ + def __init__(self): + super(AllGatherCell, self).__init__(auto_prefix=False) + self.allgather = AllGather() + + def construct(self, x): + x = self.allgather(x) + return x + + allgather_net = AllGatherCell() + param_data = allgather_net(param_data) + param_data_moments = allgather_net(param_data_moments) + ``` + + ​得到的数据param_data为每卡上的数据在维度0上的合并,数据值为 [[1, 2], [3, 4], [5, 6], [7, 8]],shape为[4, 2]。 + ​param_data原始数据值为[[1, 2, 3, 4], [5, 6, 7, 8]],shape为[2, 4],需要对数据重新切分合并。 + +3. 切分通过AllGather得到的数据。 + + ``` + slice_list = np.split(param_data.asnumpy(), 4, axis=0) # 4:group_size, number of nodes in cluster + slice_lis_moments = np.split(param_data_moments.asnumpy(), 4, axis=0) # 4: group_size, number of nodes in cluster + ``` + + 得到结果param_data为: + + slice_list[0] --- [1, 2] device0上的切片数据 + slice_list[1] --- [3, 4] device1上的切片数据 + slice_list[2] --- [5, 6] device2上的切片数据 + slice_list[3] --- [7, 8] device3上的切片数据 + +4. 按照实际情况,重新组装数据。 + + 如下代码,先分别对切片1和切片2,切片3和切片4按列拼接,之后对前两步得到的数据按行拼接。 + ``` + slice_line1 = np.concatenate((slice_list[0], slice_list[1]), aix=1) # result [1,2,3,4] + slice_line2 = np.concatenate((slice_list[2], slice_list[3]), aix=1) # result [5,6,7,8] + whole_data = np.concatenate((slice_line1, slice_line2), aix=0) # result [[1, 2, 3, 4], [5, 6, 7, 8]] + + slice_moments_line1 = np.concatenate((slice_lis_moments[0], slice_lis_moments[1]), aix=1) + slice_moments_line2 = np.concatenate((slice_lis_moments[2], slice_lis_moments[3]), aix=1) + whole_moments_data = np.concatenate((slice_moments_line1, slice_moments_line2), aix=0) + ``` + +5. 对模型参数赋值。 + + ``` + param_data = Tensor(whole_data) + param_data_moments = Tensor(whole_moments_data) + ``` + +> 1. 如果存在多个模型并行的参数,则需要重复步骤1到步骤5循环逐个处理。 +> 2. 如果步骤2执行allgather子图获取的数据,已经是最终的数据,则后面的步骤可省略。 +> 即本身切分逻辑是仅在shape0上切分,每个卡加载不同切片数据。 + +### 保存数据生成新的CheckPoint文件 + +1. 将param_dict转换为list类型数据。 + + ``` + param_list = [] + for (key, value) in param_dict.items(): + each_param = {} + each_param["name"] = key + if isinstance(value.data, Tensor): + param_data = value.data + else: + param_data = Tensor(value.data) + each_param["data"] = param_data + param_list.append(each_param) + ``` + +2. 调用`save_checkpoint`接口,将参数数据写入文件,生成新的CheckPoint文件。 + ``` + save_checkpoint(param_list, “./CKP-Integrated_1-4_32.ckpt”) + ``` + 其中, + - `save_checkpoint`: 通过该接口将网络模型参数信息存入文件。 + - `CKP-Integrated_1-4_32.ckpt`: 新生成的CheckPoint模型参数文件名称。 + +## 加载合并保存的CheckPoint文件 + +### 整体流程 + +如果需要将合并保存的CheckPoint加载到多卡训练或推理中,在模型参数真正加载到网络前,需要对于涉及并行的参数数据按照新的逻辑切分。 +如下步骤在训练前脚本里实现,步骤1和3同单机CheckPoint加载的逻辑,步骤2为新增,用于涉及并行的模型参数的切分。 +对于加载到单卡训练/推理的场景,不涉及数据切分,则步骤2可省略。 + +### 步骤1:加载CheckPoint文件 + +调用`load_checkpoint`接口,从CheckPoint文件中加载模型参数数据。 + +``` +param_dict = load_checkpoint("./CKP-Integrated_1-4_32.ckpt") +``` + +- `load_checkpoint()`:通过该接口加载CheckPoint模型参数文件,返回一个参数字典。 +- `CKP-Integrated_1-4_32.ckpt`:需要加载的CheckPoint模型参数文件名称。 + +### 步骤2:对模型并行参数做切分处理 + +下面以一个具体的模型参数为例,参数名称为“model_parallel_weight", 数据值为Tensor [[1, 2, 3, 4], [5, 6, 7, 8]],切分逻辑为2卡场景,按[2, 1]切分。 +​切分后数据分布情况如下: +| Device0 | Device1 | +| ------------------- | -------------------- | +| Value [1, 2, 3, 4] | Value [5, 6, 7, 8] | + +1. 对模型参数数据做切分。 + + 如下代码示例,在维度0上,将数据切分为两个切片。 + ``` + new_param = parameter_dict[“model_parallel_weight”] + slice_list = np.split(new_param.data.asnumpy(), 2, axis=0) + new_param_moments = parameter_dict[“moments.model_parallel_weight”] + slice_moments_list = np.split(new_param_moments.data.asnumpy(), 2, axis=0) + ``` + + 切分后的数据情况: + + slice_list[0] --- [1, 2, 3, 4] 对应device0 + slice_list[1] --- [5, 6, 7, 8] 对应device1 + + 与slice_list类似,slice_moments_list 也被切分为两个shape为[1, 4]的Tensor。 + +2. 在每个节点分别加载对应的数据切片。 + + 获取本节点的rank_id,根据rank_id加载数据。 + ``` + rank = get_rank() + tensor_slice = Tensor(slice_list[rank]) + tensor_slice_moments = Tensor(slice_moments_list[rank]) + ``` + - `get_rank`:获取当前设备在集群中的ID。 + +3. 修改模型参数数据值。 + + ``` + new_param.set_parameter_data(tensor_slice) + new_param_moments.set_parameter_data(tensor_slice_moments) + ``` + + - `set_parameter_data`:设置模型参数的值,接口参数类型为Tensor 或number。 + +### 步骤3:将修改后的参数数据加载到网络中 + +调用`load_param_into_net`接口,将模型参数数据加载到网络中。 +``` +net = Net() +opt = Momentum(learning_rate=0.01, momentum=0.9, params=parallel_net.get_parameters()) +load_param_into_net(net, param_dict) +load_param_into_net(opt, param_dict) +``` + +## 示例 + +### 示例场景说明 + +整体场景:训练分为两个阶段,两阶段的集群规模不一致, 模拟FC层MatMul算子并行。 + +用户流程: + +1. 执行阶段1训练:阶段1为4卡训练环境,每卡上MatMul算子weight的shape为[2, 8],训练过程中自动导出CheckPoint。 + +2. 执行脚本对CheckPoint文件做合并处理,根据具体的切分逻辑,对于存在切分的具体模型参数做合并处理,生成合并的CheckPoint文件。 + +3. 执行阶段2训练:阶段2为2卡训练环境,每卡上MatMul算子weight的shape为[4, 8],从合并后的CheckPoint文件加载初始化模型参数数据,之后执行训练。 + +> 具体分布式环境配置和训练部分代码,此处不做详细说明,可以参考[分布式并行训练](https://www.mindspore.cn/tutorial/zh-CN/master/advanced_use/distributed_training.html) +章节。 +> +> 本文档附上对CheckPoint文件做合并处理以及分布式训练前加载CheckPoint文件的示例代码,仅作为参考,实际请参考具体情况实现。 + +### 示例代码 + +1. 执行脚本对CheckPoint文件做合并处理。 + + 脚本执行命令: + ``` + python ./integrate_checkpoint.py "待合并的CheckPoint文件路径&名称" "合并生成的CheckPoint文件路径&名称" + ``` + + integrate_checkpoint.py: + + ``` + import numpy as np + import os + import mindspore.nn as nn + from mindspore import context + from mindspore import Tensor, Parameter + from mindspore.ops import operations as P + from mindspore.ops.operations.comm_ops import AllGather + from mindspore.communication.management import init + from mindspore.train.serialization import save_checkpoint, load_checkpoint + devid = int(os.getenv('DEVICE_ID')) + context.set_context(mode=context.GRAPH_MODE, device_target='Ascend', save_graphs=True, device_id=devid) + init() + + class Net(nn.Cell): + def __init__(self,weight_init): + super(Net, self).__init__() + self.weight = Parameter(Tensor(weight_init), "model_parallel_weight", layerwise_parallel=True) + self.fc = P.MatMul(transpose_b=True) + + def construct(self, x): + x = self.fc(x, self.weight1) + return x + + class AllGatherNet(Cell): + """ + Allgather cell, used in model parallel scenario. + To allgather the selected parameter slice from each device. + """ + def __init__(self): + super().__init__() + self.allgather = AllGather() + + def construct(self, x): + x = self.allgather(x) + return x + + def integrate_ckpt_file(old_ckpt_file, new_ckpt_file): + weight = np.ones([2, 8]).astype(np.float32) + net = Net(weight) + opt = Momentum(learning_rate=0.01, momentum=0.9, params=net.get_parameters()) + net = TrainOneStepCell(net, opt) + + # load CheckPoint into net + param_dict = load_checkpoint(old_ckpt_file) + load_param_into_net(net, param_dict) + param_dict = {} + for _, param in net.parameters_and_names(): + param_dict[param.name] = param + + for paramname in ["model_parallel_weight", "moments.model_parallel_weight"]: + # get layer wise model parallel parameter + layerwise_param = param_dict[paramname] + if isinstance(layerwise_param.data, Tensor): + param_data = layerwise_param.data + else: + param_data = Tensor(layerwise_param.data) + # merge the parallel parameters of the model + allgather_net = get_allgather_cell() + param_data = allgather_net(param_data) + layerwise_param.set_parameter_data(param_data) + + # convert param_dict to list type data + param_list = [] + for (key, value) in param_dict.items(): + each_param = {} + each_param["name"] = key + if isinstance(value.data, Tensor): + param_data = value.data + else: + param_data = Tensor(value.data) + each_param["data"] = param_data + param_list.append(each_param) + + # call the API to generate a new CheckPoint file + save_checkpoint(param_list, new_ckpt_file) + + return + + if __name__ == "__main__": + try: + old_ckpt_file = sys.argv[1] + new_ckpt_file = sys.argv[2] + integrate(old_ckpt_file, new_ckpt_file) + except: + print("Fail to integrate checkpoint file) + sys.exit(-1) + ``` + + 其中, + + - `mode=context.GRAPH_MODE`:使用分布式训练需要指定运行模式为图模式(PyNative模式不支持并行)。 + - `device_id`:卡物理序号,即卡所在机器中的实际序号。 + - `init()`:完成分布式训练初始化操作。 + + 执行结果: + + 脚本执行前,CheckPoint文件中参数值: + ``` + device0: + name is model_parallel_weight + value is + [[0.87537426 1.0448935 0.86736983 0.8836905 0.77354026 0.69588304 0.9183654 0.7792076] + [0.87224025 0.8726848 0.771446 0.81967723 0.88974726 0.7988162 0.72919345 0.7677011]] + name is learning_rate + value is [0.01] + name is momentum + value is [0.9] + name is moments.model_weight + value is + [[0.2567724 -0.07485991 0.282002 0.2456022 0.454939 0.619168 0.18964815 0.45714882] + [0.25946522 0.24344791 0.45677605 0.3611395 0.23378398 0.41439137 0.5312468 0.4696194]] + + device1: + name is model_parallel_weight + value is + [[0.9210751 0.9050457 0.9827775 0.920396 0.9240526 0.9750359 1.0275179 1.0819869] + [0.73605865 0.84631145 0.9746683 0.9386582 0.82902765 0.83565056 0.9702136 1.0514659]] + name is learning_rate + value is [0.01] + name is momentum + value is [0.9] + name is moments.model_weight + value is + [[0.2417504 0.28193963 0.06713893 0.21510397 0.23380603 0.11424308 0.0218009 -0.11969765] + [0.45955992 0.22664294 0.01990281 0.0731914 0.27125207 0.27298513 -0.01716102 -0.15327111]] + + device2: + name is model_parallel_weight + value is + [[1.0108461 0.8689414 0.91719437 0.8805056 0.7994629 0.8999671 0.7585804 1.0287056 ] + [0.90653455 0.60146594 0.7206475 0.8306303 0.8364681 0.89625114 0.7354735 0.8447268]] + name is learning_rate + value is [0.01] + name is momentum + value is [0.9] + name is moments.model_weight + value is + [[0.03440702 0.41419312 0.24817684 0.30765256 0.48516113 0.24904746 0.57791173 0.00955463] + [0.13458519 0.6690533 0.49259356 0.28319967 0.25951773 0.16777472 0.45696738 0.24933104]] + + device3: + name is model_parallel_weight + value is + [[0.7147005 0.9168278 0.80178416 0.6258351 0.8413766 0.5909515 0.696347 0.71359116] + [0.20506378 0.03691584 0.2454556 0.12978578 0.19065076 0.23904312 0.27509746 0.34614682]] + name is learning_rate + value is [0.01] + name is momentum + value is [0.9] + name is moments.model_parallel_weight + value is + [[0.14152306 0.5040985 0.24455397 0.10907605 0.11319532 0.19538902 0.01208619 0.40430856] + [-0.7773164 -0.47611716 -0.6041424 -0.6144473 -0.2651842 -0.31909415 -0.4510405 -0.12860501]] + ``` + + 脚本执行后,CheckPoint文件中参数值: + + ``` + name is model_parallel_weight + value is + [[1.1138763 1.0962057 1.3516843 1.0812817 1.1579804 1.1078343 1.0906502 1.3207073] + [0.916671 1.0781671 1.0368758 0.9680898 1.1735439 1.0628364 0.9960786 1.0135143] + [0.8828271 0.7963984 0.90675324 0.9830291 0.89010954 0.897052 0.7890109 0.89784735] + [1.0011744 1.0840297 1.0201758 1.0882459 0.94232416 1.0775206 1.0195118 1.0528734] + [1.0053468 0.98402303 0.99762845 0.97587246 1.0259694 1.0055295 0.99420834 0.9496847] + [1.0851002 1.0295962 1.0999886 1.0958165 0.9765328 1.146529 1.0970603 1.1388365] + [0.7147005 0.9168278 0.80178416 0.6258351 0.8413766 0.5909515 0.696347 0.71359116] + [0.20506378 0.03691584 0.2454556 0.12978578 0.19065076 0.23904312 0.27509746 0.34614682]] + name is learning_rate + value is [0.01] + name is momentum + value is [0.9] + name is moments.model_parallel_weight + value is + [[0.2567724 -0.07485991 0.282002 0.2456022 0.454939 0.619168 0.18964815 0.45714882] + [0.25946522 0.24344791 0.45677605 0.3611395 0.23378398 0.41439137 0.5312468 0.4696194 ] + [0.2417504 0.28193963 0.06713893 0.21510397 0.23380603 0.11424308 0.0218009 -0.11969765] + [0.45955992 0.22664294 0.01990281 0.0731914 0.27125207 0.27298513 -0.01716102 -0.15327111] + [0.03440702 0.41419312 0.24817684 0.30765256 0.48516113 0.24904746 0.57791173 0.00955463] + [0.13458519 0.6690533 0.49259356 0.28319967 0.25951773 0.16777472 0.45696738 0.24933104] + [0.14152306 0.5040985 0.24455397 0.10907605 0.11319532 0.19538902 0.01208619 0.40430856] + [-0.7773164 -0.47611716 -0.6041424 -0.6144473 -0.2651842 -0.31909415 -0.4510405 + -0.12860501]] + ``` + + +2. 执行阶段2训练,训练前加载CheckPoint文件。其中训练代码部分,需要根据实际情况补充。 + + ``` + import numpy as np + import os + import mindspore.nn as nn + from mindspore import context + from mindspore import Tensor, Parameter + from mindspore.ops import operations as P + from mindspore.train.serialization import load_checkpoint, load_param_into_net + + from mindspore.communication.management import init + devid = int(os.getenv('DEVICE_ID')) + context.set_context(mode=context.GRAPH_MODE,device_target='Ascend',save_graphs=True, device_id=devid) + init() + + class Net(nn.Cell): + def __init__(self,weight_init): + super(Net, self).__init__() + self.weight = Parameter(Tensor(weight_init), "model_parallel_weight", layerwise_parallel=True) + self.fc = P.MatMul(transpose_b=True) + + def construct(self, x): + x = self.fc(x, self.weight1) + return x + def train_mindspore_impl_fc(input, label, ckpt_file): + param_dict = load_checkpoint(ckpt_file) + + for paramname in ["model_parallel_weight", "moments.model_parallel_weight"]: + # get layer wise model parallel parameter + new_param = parameter_dict[paramname] + # split the model parameter data + slice_list = np.split(new_param.data.asnumpy(), 2, axis=0) + # Load the corresponding data slice + rank = get_rank() + tensor_slice = Tensor(slice_list[rank]) + # modify model parameter data values + new_param.set_parameter_data(tensor_slice) + + # load the modified parameter data into the network + weight = np.ones([4, 8]).astype(np.float32) + net = Net(weight) + load_param_into_net(net, param_dict) + opt = Momentum(learning_rate=0.01, momentum=0.9, params=parallel_net.get_parameters()) + load_param_into_net(opt, param_dict) + # train code + ... + + if __name__ == "__main__": + input = np.random.random((4, 8)).astype(np.float32) + print("mean = ", np.mean(input,axis=1, keepdims=True)) + label = np.random.random((4, 4)).astype(np.float32) + train_mindspore_impl_fc(input, label, weight1) + ``` + + 加载后的参数值: + + ``` + device0: + name is model_parallel_weight + value is + [[0.87537426 1.0448935 0.86736983 0.8836905 0.77354026 0.69588304 0.9183654 0.7792076] + [0.87224025 0.8726848 0.771446 0.81967723 0.88974726 0.7988162 0.72919345 0.7677011] + [0.8828271 0.7963984 0.90675324 0.9830291 0.89010954 0.897052 0.7890109 0.89784735] + [1.0011744 1.0840297 1.0201758 1.0882459 0.94232416 1.0775206 1.0195118 1.0528734]] + name is learning_rate + value is [0.01] + name is momentum + value is [0.9] + name is moments.model_weight + value is + [[0.2567724 -0.07485991 0.282002 0.2456022 0.454939 0.619168 0.18964815 0.45714882] + [0.25946522 0.24344791 0.45677605 0.3611395 0.23378398 0.41439137 0.5312468 0.4696194] + [0.2417504 0.28193963 0.06713893 0.21510397 0.23380603 0.11424308 0.0218009 -0.11969765] + [0.45955992 0.22664294 0.01990281 0.0731914 0.27125207 0.27298513 -0.01716102 -0.15327111]] + + device1: + name is model_parallel_weight + value is + [[1.0053468 0.98402303 0.99762845 0.97587246 1.0259694 1.0055295 0.99420834 0.9496847] + [1.0851002 1.0295962 1.0999886 1.0958165 0.9765328 1.146529 1.0970603 1.1388365] + [0.7147005 0.9168278 0.80178416 0.6258351 0.8413766 0.5909515 0.696347 0.71359116] + [0.20506378 0.03691584 0.2454556 0.12978578 0.19065076 0.23904312 0.27509746 0.34614682]] + name is learning_rate + value is [0.01] + name is momentum + value is [0.9] + name is moments.model_weight + value is + [[0.03440702 0.41419312 0.24817684 0.30765256 0.48516113 0.24904746 0.57791173 0.00955463] + [0.13458519 0.6690533 0.49259356 0.28319967 0.25951773 0.16777472 0.45696738 0.24933104] + [0.14152306 0.5040985 0.24455397 0.10907605 0.11319532 0.19538902 0.01208619 0.40430856] + [-0.7773164 -0.47611716 -0.6041424 -0.6144473 -0.2651842 -0.31909415 -0.4510405 -0.12860501]] + ``` diff --git a/tutorials/source_zh_cn/advanced_use/images/checkpoint_integration_process.jpg b/tutorials/source_zh_cn/advanced_use/images/checkpoint_integration_process.jpg new file mode 100644 index 0000000000000000000000000000000000000000..518bfaaed758e283631025e6bcd49e9facae7cb5 GIT binary patch literal 160394 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⪥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 literal 0 HcmV?d00001 diff --git a/tutorials/source_zh_cn/index.rst b/tutorials/source_zh_cn/index.rst index f219ad04..3f947e35 100644 --- a/tutorials/source_zh_cn/index.rst +++ b/tutorials/source_zh_cn/index.rst @@ -30,6 +30,7 @@ MindSpore教程 advanced_use/visualization_tutorials advanced_use/mixed_precision advanced_use/distributed_training + advanced_use/checkpoint_for_hybrid_parallel advanced_use/computer_vision_application advanced_use/nlp_application advanced_use/customized_debugging_information @@ -38,4 +39,4 @@ MindSpore教程 advanced_use/model_security advanced_use/network_migration advanced_use/mindspore_cpu_win_install - advanced_use/community \ No newline at end of file + advanced_use/community -- GitLab