| @@ -79,8 +79,8 @@ class Range(Cell): | |||||
| start (Union[int, float]): If `limit` is `None`, the value acts as limit in the range and first entry | start (Union[int, float]): If `limit` is `None`, the value acts as limit in the range and first entry | ||||
| defaults to `0`. Otherwise, it acts as first entry in the range. | defaults to `0`. Otherwise, it acts as first entry in the range. | ||||
| limit (Union[int, float]): Acts as upper limit of sequence. If `None`, defaults to the value of `start` | limit (Union[int, float]): Acts as upper limit of sequence. If `None`, defaults to the value of `start` | ||||
| while set the first entry of the range to `0`. | |||||
| delta (Union[int, float]): Increment of the range. Default: 1. | |||||
| while set the first entry of the range to `0`. It can not be equal to `start`. | |||||
| delta (Union[int, float]): Increment of the range. It can not be equal to zero. Default: 1. | |||||
| Outputs: | Outputs: | ||||
| Tensor, the dtype is int if the dtype of `start`, `limit` and `delta` all are int. Otherwise, dtype is float. | Tensor, the dtype is int if the dtype of `start`, `limit` and `delta` all are int. Otherwise, dtype is float. | ||||
| @@ -93,10 +93,12 @@ class Range(Cell): | |||||
| def __init__(self, start, limit=None, delta=1): | def __init__(self, start, limit=None, delta=1): | ||||
| super(Range, self).__init__() | super(Range, self).__init__() | ||||
| validator.check_value_type("start", start, [int, float], None) | |||||
| validator.check_value_type("delta", delta, [int, float], None) | |||||
| validator.check_value_type("start", start, [int, float], self.cls_name) | |||||
| validator.check_value_type("delta", delta, [int, float], self.cls_name) | |||||
| if delta == 0: | |||||
| raise ValueError("The input of `delta` can not be equal to zero.") | |||||
| if limit is not None: | if limit is not None: | ||||
| validator.check_value_type("limit", limit, [int, float], None) | |||||
| validator.check_value_type("limit", limit, [int, float], self.cls_name) | |||||
| if isinstance(start, int) and isinstance(limit, int) and isinstance(delta, int): | if isinstance(start, int) and isinstance(limit, int) and isinstance(delta, int): | ||||
| self.dtype = mstype.int32 | self.dtype = mstype.int32 | ||||
| else: | else: | ||||
| @@ -265,14 +265,15 @@ class AdamWeightDecay(Optimizer): | |||||
| take the i-th value as the learning rate. | take the i-th value as the learning rate. | ||||
| When the learning_rate is float or learning_rate is a Tensor | When the learning_rate is float or learning_rate is a Tensor | ||||
| but the dims of the Tensor is 0, use fixed learning rate. | but the dims of the Tensor is 0, use fixed learning rate. | ||||
| Other cases are not supported. Default: 1e-3. | |||||
| Other cases are not supported. It should be equal to or | |||||
| greater than 0. Default: 1e-3. | |||||
| beta1 (float): The exponential decay rate for the 1st moment estimates. Default: 0.9. | beta1 (float): The exponential decay rate for the 1st moment estimates. Default: 0.9. | ||||
| Should be in range (0.0, 1.0). | Should be in range (0.0, 1.0). | ||||
| beta2 (float): The exponential decay rate for the 2nd moment estimates. Default: 0.999. | beta2 (float): The exponential decay rate for the 2nd moment estimates. Default: 0.999. | ||||
| Should be in range (0.0, 1.0). | Should be in range (0.0, 1.0). | ||||
| eps (float): Term added to the denominator to improve numerical stability. Default: 1e-6. | eps (float): Term added to the denominator to improve numerical stability. Default: 1e-6. | ||||
| Should be greater than 0. | Should be greater than 0. | ||||
| weight_decay (float): Weight decay (L2 penalty). Default: 0.0. | |||||
| weight_decay (float): Weight decay (L2 penalty). It should be equal to or greater than 0. Default: 0.0. | |||||
| decay_filter (Function): A function to determine whether to apply weight decay on parameters. Default: | decay_filter (Function): A function to determine whether to apply weight decay on parameters. Default: | ||||
| lambda x: 'LayerNorm' not in x.name and 'bias' not in x.name. | lambda x: 'LayerNorm' not in x.name and 'bias' not in x.name. | ||||
| @@ -322,18 +323,20 @@ class AdamWeightDecayDynamicLR(Optimizer): | |||||
| Args: | Args: | ||||
| params (list[Parameter]): A list of parameter, which will be updated. The element in `params` | params (list[Parameter]): A list of parameter, which will be updated. The element in `params` | ||||
| should be class mindspore.Parameter. | should be class mindspore.Parameter. | ||||
| decay_steps (int): The steps of the decay. | |||||
| decay_steps (int): The steps of the decay. It must be int and positive. | |||||
| warmup_steps (int): The steps of lr warm up. Default: 0. | warmup_steps (int): The steps of lr warm up. Default: 0. | ||||
| learning_rate (float): A floating point value for the learning rate. Default: 0.001. | |||||
| end_learning_rate (float): A floating point value for the end learning rate. Default: 0.0001. | |||||
| power (float): The Power of the polynomial. Default: 10.0. | |||||
| learning_rate (float): A floating point value for the learning rate. It should be equal to or | |||||
| greater than 0. Default: 0.001. | |||||
| end_learning_rate (float): A floating point value for the end learning rate. It should be equal | |||||
| to or greater than 0. Default: 0.0001. | |||||
| power (float): The Power of the polynomial. It must be positive. Default: 10.0. | |||||
| beta1 (float): The exponential decay rate for the 1st moment estimates. Default: 0.9. | beta1 (float): The exponential decay rate for the 1st moment estimates. Default: 0.9. | ||||
| Should be in range (0.0, 1.0). | Should be in range (0.0, 1.0). | ||||
| beta2 (float): The exponential decay rate for the 2nd moment estimates. Default: 0.999. | beta2 (float): The exponential decay rate for the 2nd moment estimates. Default: 0.999. | ||||
| Should be in range (0.0, 1.0). | Should be in range (0.0, 1.0). | ||||
| eps (float): Term added to the denominator to improve numerical stability. Default: 1e-6. | eps (float): Term added to the denominator to improve numerical stability. Default: 1e-6. | ||||
| Should be greater than 0. | Should be greater than 0. | ||||
| weight_decay (float): Weight decay (L2 penalty). Default: 0.0. | |||||
| weight_decay (float): Weight decay (L2 penalty). It should be equal to or greater than 0. Default: 0.0. | |||||
| decay_filter (Function): A function to determine whether to apply weight decay on parameters. Default: | decay_filter (Function): A function to determine whether to apply weight decay on parameters. Default: | ||||
| lambda x: 'LayerNorm' not in x.name and 'bias' not in x.name. | lambda x: 'LayerNorm' not in x.name and 'bias' not in x.name. | ||||
| @@ -55,8 +55,8 @@ class Optimizer(Cell): | |||||
| take the i-th value as the learning rate. | take the i-th value as the learning rate. | ||||
| When the learning_rate is float or learning_rate is a Tensor | When the learning_rate is float or learning_rate is a Tensor | ||||
| but the dims of the Tensor is 0, use fixed learning rate. | but the dims of the Tensor is 0, use fixed learning rate. | ||||
| Other cases are not supported. Should be greater than 0. | |||||
| If the type of `learning_rate` input is int, it will be | |||||
| Other cases are not supported. It should be equal to or greater | |||||
| than 0. If the type of `learning_rate` input is int, it will be | |||||
| converted to float. | converted to float. | ||||
| parameters (Union[list[Parameter], list[dict]]): When the `parameters` is a list of `Parameter` which will be | parameters (Union[list[Parameter], list[dict]]): When the `parameters` is a list of `Parameter` which will be | ||||
| updated, the element in `parameters` should be class `Parameter`. When the `parameters` is a list of `dict`, | updated, the element in `parameters` should be class `Parameter`. When the `parameters` is a list of `dict`, | ||||
| @@ -537,8 +537,8 @@ class Range(PrimitiveWithInfer): | |||||
| start (float): If `limit` is `None`, the value acts as limit in the range and first entry | start (float): If `limit` is `None`, the value acts as limit in the range and first entry | ||||
| defaults to `0`. Otherwise, it acts as first entry in the range. | defaults to `0`. Otherwise, it acts as first entry in the range. | ||||
| limit (float): Acts as upper limit of sequence. If `None`, defaults to the value of `start` | limit (float): Acts as upper limit of sequence. If `None`, defaults to the value of `start` | ||||
| while set the first entry of the range to `0`. | |||||
| delta (float): Increment of the range. Default: 1.0. | |||||
| while set the first entry of the range to `0`. It can not be equal to `start`. | |||||
| delta (float): Increment of the range. It can not be equal to zero. Default: 1.0. | |||||
| Inputs: | Inputs: | ||||
| - **input_x** (Tensor) - The assistant data. A `1-D` tensor of type float32 or int32. | - **input_x** (Tensor) - The assistant data. A `1-D` tensor of type float32 or int32. | ||||
| @@ -565,6 +565,15 @@ class Range(PrimitiveWithInfer): | |||||
| self.add_prim_attr("limit", self.limit) | self.add_prim_attr("limit", self.limit) | ||||
| else: | else: | ||||
| validator.check_value_type("limit", limit, [float], self.name) | validator.check_value_type("limit", limit, [float], self.name) | ||||
| validator.check('start', self.start, 'limit', self.limit, Rel.NE, self.name) | |||||
| if self.delta == 0.0: | |||||
| raise ValueError("The input of `delta` can not be equal to zero.") | |||||
| if self.delta > 0.0 and self.start > self.limit: | |||||
| raise ValueError(f"Limit should be greater than start when delta:{self.delta} is more than zero, " | |||||
| f"but got start:{self.start}, limit:{self.limit}") | |||||
| if self.delta < 0.0 and self.start < self.limit: | |||||
| raise ValueError(f"Start should be greater than limit when delta:{self.delta} is less than zero, " | |||||
| f"but got start:{self.start}, limit:{self.limit}") | |||||
| def infer_shape(self, x_shape): | def infer_shape(self, x_shape): | ||||
| return x_shape | return x_shape | ||||
| @@ -2829,8 +2829,7 @@ class ApplyProximalAdagrad(PrimitiveWithInfer): | |||||
| Inputs: | Inputs: | ||||
| - **var** (Tensor) - Variable to be updated. | - **var** (Tensor) - Variable to be updated. | ||||
| - **accum** (Tensor) - Accum to be updated. The shape must be the same as `var`'s shape. | - **accum** (Tensor) - Accum to be updated. The shape must be the same as `var`'s shape. | ||||
| - **lr** (Union[Number, Tensor]): The learning rate value, must be positive. It should be | |||||
| a scalar tensor or number. | |||||
| - **lr** (Union[Number, Tensor]): The learning rate value. It should be a scalar tensor or number. | |||||
| - **l1** (Union[Number, Tensor]): l1 regularization strength, must be greater than or equal to zero. | - **l1** (Union[Number, Tensor]): l1 regularization strength, must be greater than or equal to zero. | ||||
| It should be a scalar tensor or number. | It should be a scalar tensor or number. | ||||
| - **l2** (Union[Number, Tensor]): l2 regularization strength, must be greater than or equal to zero. | - **l2** (Union[Number, Tensor]): l2 regularization strength, must be greater than or equal to zero. | ||||
| @@ -2888,8 +2887,7 @@ class SparseApplyProximalAdagrad(PrimitiveWithInfer): | |||||
| Inputs: | Inputs: | ||||
| - **var** (Tensor) - Variable tensor to be updated. | - **var** (Tensor) - Variable tensor to be updated. | ||||
| - **accum** (Tensor) - Variable tensor to be updated. The shape must be the same as `var`'s shape. | - **accum** (Tensor) - Variable tensor to be updated. The shape must be the same as `var`'s shape. | ||||
| - **lr** (Union[Number, Tensor]): The learning rate value, must be positive. It should be | |||||
| a scalar tensor or number. | |||||
| - **lr** (Union[Number, Tensor]): The learning rate value. It should be a scalar tensor or number. | |||||
| - **l1** (Union[Number, Tensor]): l1 regularization strength, must be greater than or equal to zero. | - **l1** (Union[Number, Tensor]): l1 regularization strength, must be greater than or equal to zero. | ||||
| It should be a scalar tensor or number. | It should be a scalar tensor or number. | ||||
| - **l2** (Union[Number, Tensor]): l2 regularization strength, must be greater than or equal to zero. | - **l2** (Union[Number, Tensor]): l2 regularization strength, must be greater than or equal to zero. | ||||
| @@ -3124,17 +3122,17 @@ class SparseApplyFtrl(PrimitiveWithInfer): | |||||
| >>> def __init__(self): | >>> def __init__(self): | ||||
| >>> super(SparseApplyFtrlNet, self).__init__() | >>> super(SparseApplyFtrlNet, self).__init__() | ||||
| >>> self.sparse_apply_ftrl = P.SparseApplyFtrl(lr=0.01, l1=0.0, l2=0.0, lr_power=-0.5) | >>> self.sparse_apply_ftrl = P.SparseApplyFtrl(lr=0.01, l1=0.0, l2=0.0, lr_power=-0.5) | ||||
| >>> self.var = Parameter(Tensor(np.random.random(3, 3).astype(np.float32)), name="var") | |||||
| >>> self.accum = Parameter(Tensor(np.random.random(3, 3).astype(np.float32)), name="accum") | |||||
| >>> self.linear = Parameter(Tensor(np.random.random(3, 3).astype(np.float32)), name="linear") | |||||
| >>> self.var = Parameter(Tensor(np.random.rand(3, 3).astype(np.float32)), name="var") | |||||
| >>> self.accum = Parameter(Tensor(np.random.rand(3, 3).astype(np.float32)), name="accum") | |||||
| >>> self.linear = Parameter(Tensor(np.random.rand(3, 3).astype(np.float32)), name="linear") | |||||
| >>> | >>> | ||||
| >>> def construct(self, grad, indices): | >>> def construct(self, grad, indices): | ||||
| >>> out = self.apply_ftrl(self.var, self.accum, self.linear, grad, indices) | |||||
| >>> out = self.sparse_apply_ftrl(self.var, self.accum, self.linear, grad, indices) | |||||
| >>> return out | >>> return out | ||||
| >>> | >>> | ||||
| >>> net = SparseApplyFtrlNet() | >>> net = SparseApplyFtrlNet() | ||||
| >>> grad = Tensor(np.random.random(3, 3).astype(np.float32)) | |||||
| >>> indices = Tnsor(np.ones([3]), mindspore.float32) | |||||
| >>> grad = Tensor(np.random.rand(3, 3).astype(np.float32)) | |||||
| >>> indices = Tensor(np.ones([3]), mindspore.int32) | |||||
| >>> output = net(grad, indices) | >>> output = net(grad, indices) | ||||
| """ | """ | ||||