mindspore.ops.NPUClearFloatStatus

class mindspore.ops.NPUClearFloatStatus[源代码]

清除存储溢出状态的标识。

说明

该标志位于 Acend 设备上的寄存器中。在调用 NPUClearFloatStatus 后,它将被重置,不能再次重用。此外,使用有严格的使用顺序要求,即在使用 mindspore.ops.NPUGetFloatStatus 算子之前,需要确保 NPUClearFloatStatus 和需执行的计算已执行。我们使用 mindspore.ops.Depend 确保执行顺序。

请参考 mindspore.ops.NPUGetFloatStatus 的样例。

输入:
输出:

Tensor,shape与 x 相同。Tensor中的所有元素都将为零。

支持平台:

Ascend

样例:

>>> import numpy as np
>>> import mindspore.nn as nn
>>> from mindspore import ops
>>> from mindspore.common import dtype as mstype
>>> from mindspore.common.tensor import Tensor
>>> class Net(nn.Cell):
...     def __init__(self):
...         super().__init__()
...         self.alloc_status = ops.NPUAllocFloatStatus()
...         self.get_status = ops.NPUGetFloatStatus()
...         self.clear_status = ops.NPUClearFloatStatus()
...         self.sub = ops.Sub()
...         self.neg = ops.Neg()
...
...     def construct(self, x):
...         init = self.alloc_status()
...         clear_status = self.clear_status(init)
...         x = ops.depend(x, clear_status)
...         res = self.sub(x, self.neg(x))
...         init = ops.depend(init, res)
...         get_status = self.get_status(init)
...         res = ops.depend(res, get_status)
...         return res
>>>
>>> value = 5
>>> data = np.full((2, 3), value, dtype=np.float16)
>>> x = Tensor(data, dtype=mstype.float16)
>>> net = Net()
>>> res = net(x)
>>> print(res)
[[10. 10. 10.]
 [10. 10. 10.]]