mindspore.ops.tensordump ======================== .. py:function:: mindspore.ops.tensordump(file_name, tensor, mode='out') 将Tensor保存为Numpy的npy格式的文件。 在并行的场景下,该算子会保存不同计算卡上的数据分片。 在昇腾平台的静态图并行模式下,代码 算子A --> 算子B 可能会被编译为 算子A --> 重排算子 --> 算子B。 注:重排算子指在静态图并行场景中,由于设备间通信,算子切分策略而引入的算子。 对于 算子A --> 算子B 的情况,算子A计算结果的输出等于算子B的输入。 然而对于算子A --> 重排算子 --> 算子B这样的情况,由于重排算子的插入,导致算子A的输出不再等价于算子B的输入。 假设一种情况是算子A的计算结果既作为算子B的输入,也作为tensordump算子的输入。则在该情况下, 通过设置mode参数可以实现不同的保存数据的需求: - 如果mode参数设置为'out',保存的数据仅包含算子A的输出分片。 - 如果mode参数设置为'all',保存的数据将包含算子A的输出分片以及算子B的输入分片。 - 如果mode参数设置为'in',保存的数据将仅包含算子B的输入分片。 当mode参数被配置为'all'或'in'时,生成的输入分片所对应的npy文件命名格式为:id_fileName_cNodeID_dumpMode_rankID.npy。 当mode参数被配置为'all'或'out'时,生成的输出分片所对应的npy文件命名格式为:id_filename.npy。 - id:一个自增的ID。 - fileName:参数file_name的值 (若该参数传入时是一个使用者指定的路径,则fileName的值为路径的最后一级)。 - cNodeID:该tensordump节点在step_parallel_end.ir文件中的节点编号 - dumpMode:mode参数的值。 - rankID:逻辑卡号。 .. note:: - 当前该算子不支持在控制流中使用。 - 如果当前的并行模式为STAND_ALONE,参数mode只能设置为'out'。 - 如使用该算子时不设置参数mode,其默认值为'out'。 参数: - **file_name** (str) - npy文件的保存路径。 - **tensor** (Tensor) - 输入的张量。 - **mode** (str,可选) - 控制tensordump行为模式的参数,可选的值为 ['out', 'in', 'all'] 中的一个,默认值: ``out``。 异常: - **TypeError** - `file_name` 不是一个str类型。 - **TypeError** - `tensor` 不是一个Tensor类型。 - **TypeError** - `mode` 不是一个str类型。 - **ValueError** - `mode` 的值不是 ['out', 'in', 'all'] 之中的一个。 样例: .. note:: 使用msrun命令运行下面的例子:msrun --worker_num=2 --local_worker_num=2 --master_port=11450 --log_dir=msrun_log --join=True --cluster_time_out=300 tensordump_example.py