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数据功能。

警告

这是一个实验性API,后续可能修改或删除。

说明

  • 此API只在Ascend后端的图模式有效。

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

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

  • 对于 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

样例:

>>> # Please set the dump config file and environment variable before
>>> # running this example to actually get the dump data.
>>> # See the document of this API for details.
>>> 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)