|
|
|
@ -978,14 +978,9 @@ class BNTrainingReduce(PrimitiveWithInfer):
|
|
|
|
|
>>> bn_training_reduce = ops.BNTrainingReduce()
|
|
|
|
|
>>> output = bn_training_reduce(input_x)
|
|
|
|
|
>>> print(output)
|
|
|
|
|
(Tensor(shape=[1, 2, 2, 2], dtype=Float32, value=
|
|
|
|
|
[[[[ 2.73200464e+00, 2,73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2,73200464e+00]],
|
|
|
|
|
[[ 2.73200464e+00, 2,73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2,73200464e+00]]]]), Tensor(shape=[2], dtype=Float32, value= [ 9.24999952e-01,
|
|
|
|
|
9.24999952e-01]), Tensor(shape=[2], dtype=Float32, value= [ 9.24999952e-01, 9.24999952e-01]),
|
|
|
|
|
Tensor(shape=[2], dtype=Float32, value= [ 2.50000000e-01, 2.50000000e-01]), Tensor(shape=[2], dtype=Float32,
|
|
|
|
|
value= [ 1.87500000e-01, 1.87500000-01]))
|
|
|
|
|
(Tensor(shape=[3], dtype=Float32, value=
|
|
|
|
|
[ 1.22880000e+04, 1.22880000e+04, 1.22880000e+04]), Tensor(shape=[3], dtype=Float32, value=
|
|
|
|
|
[ 1.22880000e+04, 1.22880000e+04, 1.22880000e+04]))
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
@prim_attr_register
|
|
|
|
@ -1061,17 +1056,10 @@ class BNTrainingUpdate(PrimitiveWithInfer):
|
|
|
|
|
[[[[ 2.73200464e+00, 2.73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2.73200464e+00]],
|
|
|
|
|
[[ 2.73200464e+00, 2.73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2.73200464e+00]]]]), Tensor(shape=[1, 2, 2, 2], dtype=Float32, value=
|
|
|
|
|
[[[[ 2.73200464e+00, 2.73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2.73200464e+00]],
|
|
|
|
|
[[ 2.73200464e+00, 2.73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2.73200464e+00]]]]), Tensor(shape=[1, 2, 2, 2], dtype=Float32, value=
|
|
|
|
|
[[[[ 2.73200464e+00, 2.73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2.73200464e+00]],
|
|
|
|
|
[[ 2.73200464e+00, 2.73200464e+00],
|
|
|
|
|
[ 2.73200464e+00, 2.73200464e+00]]]]), Tensor(shape=[2], dtype=Float32, value=
|
|
|
|
|
[ 2.50000000e-01, 2.50000000e-01]), Tensor(shape=[2], dtype=Float32, value=
|
|
|
|
|
[ 1.87500000e-01, 1.87500000e-01]))
|
|
|
|
|
[ 2.73200464e+00, 2.73200464e+00]]]]), Tensor(shape=[2], dtype=Float32, value= [9.24999952e-0.1,
|
|
|
|
|
9.24999952e-0.1]), Tensor(shape=[2], dtype=Float32, value= [ 9.24999952e-0.1, 9.24999952e-0.1]),
|
|
|
|
|
Tensor(shape=[2], dtype=Float32, value= [ 2.50000000e-0.1, 2.50000000e-0.1]), Tensor(shape=[2], dtype=Float32,
|
|
|
|
|
value= [ 1.87500000e-0.1, 1.87500000e-0.1]))
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
@prim_attr_register
|
|
|
|
@ -2223,8 +2211,8 @@ class NLLLoss(PrimitiveWithInfer):
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
>>> input = Tensor(np.array([[0.5488135, 0.71518934],
|
|
|
|
|
>>> [0.60276335, 0.5448832],
|
|
|
|
|
>>> [0.4236548, 0.6458941]]).astype(np.float32))
|
|
|
|
|
... [0.60276335, 0.5448832],
|
|
|
|
|
... [0.4236548, 0.6458941]]).astype(np.float32))
|
|
|
|
|
>>> target = Tensor(np.array([0, 0, 0]).astype(np.int32))
|
|
|
|
|
>>> weight = Tensor(np.array([0.3834415, 0.79172504]).astype(np.float32))
|
|
|
|
|
>>> nll_loss = ops.NLLLoss(reduction="mean")
|
|
|
|
@ -2357,7 +2345,7 @@ class SparseSoftmaxCrossEntropyWithLogits(PrimitiveWithInfer):
|
|
|
|
|
``GPU`` ``CPU``
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
Please refer to the usage in nn.SoftmaxCrossEntropyWithLogits source code.
|
|
|
|
|
Please refer to :class:`mindspore.nn.SparseSoftmaxCrossEntropyWithLogits`
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
@prim_attr_register
|
|
|
|
@ -4216,20 +4204,14 @@ class Adam(PrimitiveWithInfer):
|
|
|
|
|
... def construct(self, beta1_power, beta2_power, lr, beta1, beta2, epsilon, grad):
|
|
|
|
|
... out = self.apply_adam(self.var, self.m, self.v, beta1_power, beta2_power, lr, beta1, beta2,
|
|
|
|
|
... epsilon, grad)
|
|
|
|
|
...
|
|
|
|
|
... return out
|
|
|
|
|
>>> np.random.seed(0)
|
|
|
|
|
...
|
|
|
|
|
>>> net = Net()
|
|
|
|
|
>>> gradient = Tensor(np.random.rand(2, 2).astype(np.float32))
|
|
|
|
|
>>> output = net(0.9, 0.999, 0.001, 0.9, 0.999, 1e-8, gradient)
|
|
|
|
|
>>> print(output)
|
|
|
|
|
(Tensor(shape=[2, 2], dtype=Float32, value=
|
|
|
|
|
[[ 9.99697924e-01, 9.99692678e-01],
|
|
|
|
|
[ 9.99696255e-01, 9.99698043e-01]]), Tensor(shape=[2, 2], dtype=Float32, value=
|
|
|
|
|
[[ 9.54881310e-01, 9.71518934e-01],
|
|
|
|
|
[ 9.60276306e-01, 9.54488277e-01]]), Tensor(shape=[2, 2], dtype=Float32, value=
|
|
|
|
|
[[ 9.99301195e-01, 9.99511480e-01],
|
|
|
|
|
[ 9.99363303e-01, 9.99296904e-01]]))
|
|
|
|
|
>>> gradient = Tensor(np.ones([2, 2]).astype(np.float32))
|
|
|
|
|
>>> net(0.9, 0.999, 0.001, 0.9, 0.999, 1e-8, gradient)
|
|
|
|
|
>>> print(net.var.asnumpy())
|
|
|
|
|
[[0.9996838 0.9996838]
|
|
|
|
|
[0.9996838 0.9996838]]
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
@prim_attr_register
|
|
|
|
@ -4318,18 +4300,17 @@ class AdamNoUpdateParam(PrimitiveWithInfer):
|
|
|
|
|
>>> import mindspore.nn as nn
|
|
|
|
|
>>> from mindspore import Tensor, Parameter
|
|
|
|
|
>>> from mindspore.ops import operations as ops
|
|
|
|
|
>>>
|
|
|
|
|
>>> class Net(nn.Cell):
|
|
|
|
|
>>> def __init__(self):
|
|
|
|
|
>>> super(Net, self).__init__()
|
|
|
|
|
>>> self.adam = ops.AdamNoUpdateParam()
|
|
|
|
|
>>> self.m = Parameter(Tensor(np.array([[0.1, 0.1, 0.1], [0.2, 0.2, 0.2]]).astype(np.float32)),
|
|
|
|
|
>>> name="m")
|
|
|
|
|
>>> self.v = Parameter(Tensor(np.array([[0.1, 0.1, 0.1], [0.2, 0.2, 0.2]]).astype(np.float32)),
|
|
|
|
|
>>> name="v")
|
|
|
|
|
>>> def construct(self, beta1_power, beta2_power, lr, beta1, beta2, epsilon, grad):
|
|
|
|
|
>>> out = self.adam(self.m, self.v, beta1_power, beta2_power, lr, beta1, beta2, epsilon, grad)
|
|
|
|
|
>>> return out
|
|
|
|
|
... def __init__(self):
|
|
|
|
|
... super(Net, self).__init__()
|
|
|
|
|
... self.adam = ops.AdamNoUpdateParam()
|
|
|
|
|
... self.m = Parameter(Tensor(np.array([[0.1, 0.1, 0.1], [0.2, 0.2, 0.2]]).astype(np.float32)),
|
|
|
|
|
... name="m")
|
|
|
|
|
... self.v = Parameter(Tensor(np.array([[0.1, 0.1, 0.1], [0.2, 0.2, 0.2]]).astype(np.float32)),
|
|
|
|
|
... name="v")
|
|
|
|
|
... def construct(self, beta1_power, beta2_power, lr, beta1, beta2, epsilon, grad):
|
|
|
|
|
... out = self.adam(self.m, self.v, beta1_power, beta2_power, lr, beta1, beta2, epsilon, grad)
|
|
|
|
|
... return out
|
|
|
|
|
>>> net = Net()
|
|
|
|
|
>>> beta1_power = Tensor(0.9, ms.float32)
|
|
|
|
|
>>> beta2_power = Tensor(0.999, ms.float32)
|
|
|
|
@ -4338,7 +4319,6 @@ class AdamNoUpdateParam(PrimitiveWithInfer):
|
|
|
|
|
>>> beta2 = Tensor(0.999, ms.float32)
|
|
|
|
|
>>> epsilon = Tensor(1e-8, ms.float32)
|
|
|
|
|
>>> gradient = Tensor(np.array([[0.1, 0.1, 0.1], [0.1, 0.1, 0.1]]).astype(np.float32))
|
|
|
|
|
>>>
|
|
|
|
|
>>> result = net(beta1_power, beta2_power, lr, beta1, beta2, epsilon, gradient)
|
|
|
|
|
>>> print(result)
|
|
|
|
|
[[-0.00010004 -0.00010004 -0.00010004]
|
|
|
|
@ -4459,8 +4439,11 @@ class FusedSparseAdam(PrimitiveWithInfer):
|
|
|
|
|
>>> epsilon = Tensor(1e-8, mstype.float32)
|
|
|
|
|
>>> gradient = Tensor(np.random.rand(2, 1, 2), mstype.float32)
|
|
|
|
|
>>> indices = Tensor([0, 1], mstype.int32)
|
|
|
|
|
>>> output = net(beta1_power, beta2_power, lr, beta1, beta2, epsilon, gradient, indices)
|
|
|
|
|
>>> print(output)
|
|
|
|
|
>>> net(beta1_power, beta2_power, lr, beta1, beta2, epsilon, gradient, indices)
|
|
|
|
|
>>> print(net.var.asnumpy())
|
|
|
|
|
[[[0.9996963 0.9996977 ]]
|
|
|
|
|
[[0.99970144 0.9996992 ]]
|
|
|
|
|
[[0.99971527 0.99971527]]]
|
|
|
|
|
"""
|
|
|
|
|
__mindspore_signature__ = (
|
|
|
|
|
sig.make_sig('var', sig.sig_rw.RW_WRITE, dtype=sig.sig_dtype.T),
|
|
|
|
@ -4604,8 +4587,11 @@ class FusedSparseLazyAdam(PrimitiveWithInfer):
|
|
|
|
|
>>> epsilon = Tensor(1e-8, mstype.float32)
|
|
|
|
|
>>> gradient = Tensor(np.random.rand(2, 1, 2), mstype.float32)
|
|
|
|
|
>>> indices = Tensor([0, 1], mstype.int32)
|
|
|
|
|
>>> output = net(beta1_power, beta2_power, lr, beta1, beta2, epsilon, gradient, indices)
|
|
|
|
|
>>> print(output)
|
|
|
|
|
>>> net(beta1_power, beta2_power, lr, beta1, beta2, epsilon, gradient, indices)
|
|
|
|
|
>>> print(net.var.asnumpy())
|
|
|
|
|
[[[0.9996866 0.9997078]]
|
|
|
|
|
[[0.9997037 0.9996869]]
|
|
|
|
|
[[1. 1. ]]]
|
|
|
|
|
"""
|
|
|
|
|
__mindspore_signature__ = (
|
|
|
|
|
sig.make_sig('var', sig.sig_rw.RW_WRITE, dtype=sig.sig_dtype.T),
|
|
|
|
|