mindspore.set_dump
- mindspore.set_dump(target, enabled=True)[源代码]
启用或者禁用 target 及其子节点的Dump数据功能。
target 为
mindspore.nn.Cell
或mindspore.ops.Primitive
的实例。请注意,此API仅在开启异步Dump功能且Dump配置文件中的 dump_mode 字段为”2”时生效。有关详细信息,请参阅 Dump功能文档 。默认状态下,mindspore.nn.Cell
和mindspore.ops.Primitive
实例不使能Dump数据功能。警告
这是一个实验性API,后续可能修改或删除。
说明
此API只在Ascend后端的图模式有效。
此API只支持训练开始前调用。如果在训练过程中调用这个API,可能不会有效果。
使用 set_dump(Cell, True) 后,Cell正向计算和反向计算(梯度运算产生的计算)中的算子会被Dump。
对于
mindspore.nn.SoftmaxCrossEntropyWithLogits
层,正向计算和反向计算使用同一组算子。因此,只能看到反向计算中的Dump数据。请注意,当使用 sparse=True 和 reduce=”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)