mindspore.ops.NPUClearFloatStatus
- class mindspore.ops.NPUClearFloatStatus[源代码]
清除存储溢出状态的标识。
说明
该标志位于 Acend 设备上的寄存器中。在调用 NPUClearFloatStatus 后,它将被重置,不能再次重用。此外,使用有严格的使用顺序要求,即在使用
mindspore.ops.NPUGetFloatStatus
算子之前,需要确保 NPUClearFloatStatus 和需执行的计算已执行。我们使用mindspore.ops.Depend
确保执行顺序。请参考
mindspore.ops.NPUGetFloatStatus
的样例。- 输入:
x (Tensor) -
mindspore.ops.NPUAllocFloatStatus
的输出Tensor。数据类型必须为float16或float32。
- 输出:
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.]]