mindspore.set_dump

查看源文件
mindspore.set_dump(target, enabled=True)[源代码]

启用或者禁用 target 及其子节点的Dump数据功能。

targetmindspore.nn.Cellmindspore.ops.Primitive 的实例。请注意,此API仅在开启同步Dump功能且Dump配置文件中的 dump_mode 字段为 "2" 时生效。有关详细信息,请参阅 Dump功能文档 。默认状态下, mindspore.nn.Cellmindspore.ops.Primitive 实例不使能Dump数据功能。

说明

  1. 此API只在Ascend后端图编译等级为O0/O1的图模式下有效。

  2. 此API只支持训练开始前调用。如果在训练过程中调用这个API,可能不会有效果。

  3. 使用 set_dump(Cell, True) 后,Cell正向计算和反向计算(梯度运算产生的计算)中的算子会被Dump。

  4. 对于 mindspore.nn.SoftmaxCrossEntropyWithLogits 层,正向计算和反向计算使用同一组算子。因此,只能看到反向计算中的Dump数据。请注意,当使用 sparse=Truereduce="mean" 初始化时, mindspore.nn.SoftmaxCrossEntropyWithLogits 层也将在内部使用这些算子。

参数:
  • target (Union[Cell, Primitive]) - 要设置Dump标志的Cell或Primitive的实例。

  • enabled (bool,可选) - True 表示启用Dump, False 表示禁用Dump,默认值: True

支持平台:

Ascend

样例:

说明

运行此样例之前请设置环境变量 MINDSPORE_DUMP_CONFIG 到配置文件,并将配置文件中的 dump_mode 字段设置为2。 详细信息请参阅 Dump功能文档

>>> import numpy as np
>>> import mindspore as ms
>>> import mindspore.nn as nn
>>> from mindspore import Tensor, set_dump
>>>
>>> ms.set_context(device_target="Ascend", mode=ms.GRAPH_MODE)
>>>
>>> class MyNet(nn.Cell):
...     def __init__(self):
...         super().__init__()
...         self.conv1 = nn.Conv2d(5, 6, 5, pad_mode='valid')
...         self.relu1 = nn.ReLU()
...
...     def construct(self, x):
...         x = self.conv1(x)
...         x = self.relu1(x)
...         return x
>>>
>>> if __name__ == "__main__":
...     net = MyNet()
...     set_dump(net.conv1)
...     input_tensor = Tensor(np.ones([1, 5, 10, 10], dtype=np.float32))
...     output = net(input_tensor)