From 0aaa1eba22650ed6feb126fb5c3e13a92c577a05 Mon Sep 17 00:00:00 2001
From: chenhaozhe <chenhaozhe1@huawei.com>
Date: Thu, 17 Mar 2022 15:19:37 +0800
Subject: [PATCH] update _Loss to LossBase

---
 official/cv/vit/src/cross_entropy.py                     | 8 +-------
 research/cv/HRNetW48_cls/src/loss.py                     | 4 ++--
 research/cv/HRNetW48_seg/src/loss.py                     | 6 +++---
 research/cv/ICNet/Res50V1_PRE/src/CrossEntropySmooth.py  | 4 ++--
 research/cv/NFNet/src/tools/criterion.py                 | 6 +++---
 research/cv/OCRNet/src/loss.py                           | 6 +++---
 research/cv/Pix2Pix/src/models/loss.py                   | 8 ++++----
 research/cv/ProtoNet/src/PrototypicalLoss.py             | 4 ++--
 research/cv/ResNeSt50/src/crossentropy.py                | 4 ++--
 research/cv/SE_ResNeXt50/eval.py                         | 4 ++--
 research/cv/SE_ResNeXt50/train.py                        | 4 ++--
 research/cv/TNT/src/tools/criterion.py                   | 6 +++---
 research/cv/VehicleNet/src/loss.py                       | 4 ++--
 research/cv/aecrnet/src/contras_loss.py                  | 4 ++--
 research/cv/cct/src/tools/criterion.py                   | 6 +++---
 research/cv/csd/src/contras_loss.py                      | 4 ++--
 research/cv/efficientnet-b0/src/loss.py                  | 4 ++--
 research/cv/efficientnet-b1/src/loss.py                  | 6 +++---
 research/cv/efficientnet-b3/src/loss.py                  | 4 ++--
 research/cv/fishnet99/eval.py                            | 4 ++--
 research/cv/fishnet99/train.py                           | 4 ++--
 research/cv/ghostnet/src/CrossEntropySmooth.py           | 4 ++--
 research/cv/inception_resnet_v2/modelarts/train_start.py | 4 ++--
 research/cv/inception_resnet_v2/train.py                 | 4 ++--
 research/cv/mnasnet/src/loss.py                          | 4 ++--
 research/cv/mobilenetV3_small_x1_0/src/loss.py           | 4 ++--
 research/cv/mobilenetv3_large/train.py                   | 4 ++--
 research/cv/pointnet2/src/pointnet2.py                   | 4 ++--
 research/cv/resnet3d/src/loss.py                         | 4 ++--
 research/cv/resnet50_bam/eval.py                         | 4 ++--
 research/cv/resnet50_bam/train.py                        | 4 ++--
 research/cv/resnext152_64x4d/src/crossentropy.py         | 4 ++--
 research/cv/simple_baselines/src/network_with_loss.py    | 4 ++--
 research/cv/single_path_nas/eval.py                      | 4 ++--
 research/cv/single_path_nas/src/CrossEntropySmooth.py    | 4 ++--
 research/cv/sknet/src/CrossEntropySmooth.py              | 4 ++--
 research/cv/squeezenet1_1/src/CrossEntropySmooth.py      | 4 ++--
 research/cv/swin_transformer/src/tools/criterion.py      | 6 +++---
 research/cv/tsm/src/model/cross_entropy_smooth.py        | 4 ++--
 research/cv/wideresnet/src/cross_entropy_smooth.py       | 4 ++--
 40 files changed, 88 insertions(+), 94 deletions(-)

diff --git a/official/cv/vit/src/cross_entropy.py b/official/cv/vit/src/cross_entropy.py
index 7cbedb5f0..1e7865b91 100644
--- a/official/cv/vit/src/cross_entropy.py
+++ b/official/cv/vit/src/cross_entropy.py
@@ -17,13 +17,7 @@
 from mindspore import nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-try:
-    from mindspore.nn.loss.loss import Loss
-except ImportError:
-    try:
-        from mindspore.nn.loss.loss import LossBase as Loss
-    except ImportError:
-        from mindspore.nn.loss.loss import _Loss as Loss
+from mindspore.nn.loss.loss import LossBase as Loss
 
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
diff --git a/research/cv/HRNetW48_cls/src/loss.py b/research/cv/HRNetW48_cls/src/loss.py
index 33d841525..ce56f8a41 100644
--- a/research/cv/HRNetW48_cls/src/loss.py
+++ b/research/cv/HRNetW48_cls/src/loss.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/HRNetW48_seg/src/loss.py b/research/cv/HRNetW48_seg/src/loss.py
index 9cde41d4c..9f88cbde6 100644
--- a/research/cv/HRNetW48_seg/src/loss.py
+++ b/research/cv/HRNetW48_seg/src/loss.py
@@ -18,10 +18,10 @@ import mindspore.ops.operations as P
 import mindspore.ops as F
 from mindspore.common.tensor import Tensor
 from mindspore import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 
 
-class CrossEntropyWithLogits(_Loss):
+class CrossEntropyWithLogits(LossBase):
     """
     Cross-entropy loss function for semantic segmentation,
     and different classes have the same weight.
@@ -61,7 +61,7 @@ class CrossEntropyWithLogits(_Loss):
         return loss
 
 
-class CrossEntropyWithWeights(_Loss):
+class CrossEntropyWithWeights(LossBase):
     """
     Cross-entropy loss function for semantic segmentation,
     and different classes have different weights.
diff --git a/research/cv/ICNet/Res50V1_PRE/src/CrossEntropySmooth.py b/research/cv/ICNet/Res50V1_PRE/src/CrossEntropySmooth.py
index 24bb6995e..149f33454 100644
--- a/research/cv/ICNet/Res50V1_PRE/src/CrossEntropySmooth.py
+++ b/research/cv/ICNet/Res50V1_PRE/src/CrossEntropySmooth.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/NFNet/src/tools/criterion.py b/research/cv/NFNet/src/tools/criterion.py
index bf8a490e9..adef5e682 100644
--- a/research/cv/NFNet/src/tools/criterion.py
+++ b/research/cv/NFNet/src/tools/criterion.py
@@ -17,12 +17,12 @@ import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore import ops
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class SoftTargetCrossEntropy(_Loss):
+class SoftTargetCrossEntropy(LossBase):
     """SoftTargetCrossEntropy for MixUp Augment"""
 
     def __init__(self):
@@ -38,7 +38,7 @@ class SoftTargetCrossEntropy(_Loss):
         return self.mean_ops(loss)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
diff --git a/research/cv/OCRNet/src/loss.py b/research/cv/OCRNet/src/loss.py
index 99af216d1..5842464a4 100644
--- a/research/cv/OCRNet/src/loss.py
+++ b/research/cv/OCRNet/src/loss.py
@@ -19,7 +19,7 @@ import mindspore.ops.operations as P
 import mindspore.ops as F
 from mindspore.common.tensor import Tensor
 from mindspore import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 
 from src.config import config_hrnetv2_w48 as config
 
@@ -30,7 +30,7 @@ weights_list = [0.8373, 0.918, 0.866, 1.0345,
                 1.0865, 1.1529, 1.0507]
 
 
-class CrossEntropyWithLogits(_Loss):
+class CrossEntropyWithLogits(LossBase):
     """
     Cross-entropy loss function for semantic segmentation,
     and different classes have the same weight.
@@ -71,7 +71,7 @@ class CrossEntropyWithLogits(_Loss):
         return loss
 
 
-class CrossEntropyWithLogitsAndWeights(_Loss):
+class CrossEntropyWithLogitsAndWeights(LossBase):
     """
     Cross-entropy loss function for semantic segmentation,
     and different classes have different weights.
diff --git a/research/cv/Pix2Pix/src/models/loss.py b/research/cv/Pix2Pix/src/models/loss.py
index eff9c4776..c9cca0cb9 100644
--- a/research/cv/Pix2Pix/src/models/loss.py
+++ b/research/cv/Pix2Pix/src/models/loss.py
@@ -24,12 +24,12 @@ import mindspore.ops.operations as P
 from mindspore.parallel._utils import (_get_device_num, _get_gradients_mean, _get_parallel_mode)
 from mindspore.context import ParallelMode
 from mindspore.nn.wrap.grad_reducer import DistributedGradReducer
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from src.utils.config import get_args
 
 args = get_args()
 
-class SigmoidCrossEntropyWithLogits(_Loss):
+class SigmoidCrossEntropyWithLogits(LossBase):
     def __init__(self):
         super(SigmoidCrossEntropyWithLogits, self).__init__()
         self.cross_entropy = P.SigmoidCrossEntropyWithLogits()
@@ -38,7 +38,7 @@ class SigmoidCrossEntropyWithLogits(_Loss):
         x = self.cross_entropy(data, label)
         return self.get_loss(x)
 
-class D_Loss(_Loss):
+class D_Loss(LossBase):
     """
         Define Dloss.
     """
@@ -70,7 +70,7 @@ class D_WithLossCell(nn.Cell):
         pred0 = self.netD(realA, fakeB)
         return self._loss_fn(pred1, pred0)
 
-class G_Loss(_Loss):
+class G_Loss(LossBase):
     """
         Define Gloss.
     """
diff --git a/research/cv/ProtoNet/src/PrototypicalLoss.py b/research/cv/ProtoNet/src/PrototypicalLoss.py
index 8faa95927..0a3a784f9 100644
--- a/research/cv/ProtoNet/src/PrototypicalLoss.py
+++ b/research/cv/ProtoNet/src/PrototypicalLoss.py
@@ -18,11 +18,11 @@ loss function script.
 import mindspore.ops as ops
 import mindspore.nn as nn
 from mindspore import Tensor
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 import mindspore as ms
 import numpy as np
 
-class PrototypicalLoss(_Loss):
+class PrototypicalLoss(LossBase):
     '''
     Loss class deriving from Module for the prototypical loss function defined below
     '''
diff --git a/research/cv/ResNeSt50/src/crossentropy.py b/research/cv/ResNeSt50/src/crossentropy.py
index a5abe6021..01039e39e 100644
--- a/research/cv/ResNeSt50/src/crossentropy.py
+++ b/research/cv/ResNeSt50/src/crossentropy.py
@@ -15,14 +15,14 @@
 """
 define loss function for network.
 """
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import operations as P
 from mindspore.ops import functional as F
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
 import mindspore.nn as nn
 
-class CrossEntropy(_Loss):
+class CrossEntropy(LossBase):
     """
     the redefined loss function with SoftmaxCrossEntropyWithLogits.
     """
diff --git a/research/cv/SE_ResNeXt50/eval.py b/research/cv/SE_ResNeXt50/eval.py
index cb109902c..a12f096dc 100644
--- a/research/cv/SE_ResNeXt50/eval.py
+++ b/research/cv/SE_ResNeXt50/eval.py
@@ -24,7 +24,7 @@ from mindspore.train.serialization import load_checkpoint, load_param_into_net
 from mindspore.common import set_seed
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
@@ -41,7 +41,7 @@ parser.add_argument('--checkpoint_path', type=str, default='./ckpt_0', help='Che
 args_opt = parser.parse_args()
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/SE_ResNeXt50/train.py b/research/cv/SE_ResNeXt50/train.py
index b99da2f46..972626ae0 100644
--- a/research/cv/SE_ResNeXt50/train.py
+++ b/research/cv/SE_ResNeXt50/train.py
@@ -34,7 +34,7 @@ from mindspore.context import ParallelMode
 from mindspore.train.serialization import load_checkpoint, load_param_into_net
 from mindspore.common import set_seed
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
@@ -152,7 +152,7 @@ def warmup_cosine_annealing_lr(lr5, steps_per_epoch, warmup_epochs, max_epoch, T
     return np.array(lr_each_step).astype(np.float32)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/TNT/src/tools/criterion.py b/research/cv/TNT/src/tools/criterion.py
index 1afdd719f..ee963c1fe 100644
--- a/research/cv/TNT/src/tools/criterion.py
+++ b/research/cv/TNT/src/tools/criterion.py
@@ -17,12 +17,12 @@ import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore import ops
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class SoftTargetCrossEntropy(_Loss):
+class SoftTargetCrossEntropy(LossBase):
     """SoftTargetCrossEntropy for MixUp Augment"""
 
     def __init__(self):
@@ -38,7 +38,7 @@ class SoftTargetCrossEntropy(_Loss):
         return self.mean_ops(loss)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
diff --git a/research/cv/VehicleNet/src/loss.py b/research/cv/VehicleNet/src/loss.py
index 6aca54153..673a8ab1c 100644
--- a/research/cv/VehicleNet/src/loss.py
+++ b/research/cv/VehicleNet/src/loss.py
@@ -13,14 +13,14 @@
 # limitations under the License.
 # ============================================================================
 """loss function"""
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import operations as P
 from mindspore.ops import functional as F
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
 import mindspore.nn as nn
 
-class CrossEntropy(_Loss):
+class CrossEntropy(LossBase):
     """CrossEntropy"""
     def __init__(self, smooth_factor=0., num_classes=1000):
         super(CrossEntropy, self).__init__()
diff --git a/research/cv/aecrnet/src/contras_loss.py b/research/cv/aecrnet/src/contras_loss.py
index 93b3d61bd..fb8ea8430 100644
--- a/research/cv/aecrnet/src/contras_loss.py
+++ b/research/cv/aecrnet/src/contras_loss.py
@@ -16,7 +16,7 @@
 import os
 
 import mindspore.ops as ops
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore import nn
 from mindspore import load_checkpoint, load_param_into_net
 from mindspore.ops.functional import stop_gradient
@@ -82,7 +82,7 @@ class Vgg19(nn.Cell):
         return out
 
 
-class ContrastLoss(_Loss):
+class ContrastLoss(LossBase):
     """[ContrastLoss]
 
     Args:
diff --git a/research/cv/cct/src/tools/criterion.py b/research/cv/cct/src/tools/criterion.py
index 4ed0f0534..257aec2da 100644
--- a/research/cv/cct/src/tools/criterion.py
+++ b/research/cv/cct/src/tools/criterion.py
@@ -17,12 +17,12 @@ import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore import ops
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class SoftTargetCrossEntropy(_Loss):
+class SoftTargetCrossEntropy(LossBase):
     """SoftTargetCrossEntropy for MixUp Augment"""
 
     def __init__(self):
@@ -38,7 +38,7 @@ class SoftTargetCrossEntropy(_Loss):
         return self.mean_ops(loss)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
diff --git a/research/cv/csd/src/contras_loss.py b/research/cv/csd/src/contras_loss.py
index 8326af260..ac9bfa655 100644
--- a/research/cv/csd/src/contras_loss.py
+++ b/research/cv/csd/src/contras_loss.py
@@ -16,7 +16,7 @@
 import os
 
 import mindspore.ops as ops
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore import nn
 from mindspore import load_checkpoint, load_param_into_net
 from mindspore.ops.functional import stop_gradient
@@ -108,7 +108,7 @@ class Vgg19(nn.Cell):
         return out
 
 
-class ContrastLoss(_Loss):
+class ContrastLoss(LossBase):
     """[ContrastLoss]
 
     Args:
diff --git a/research/cv/efficientnet-b0/src/loss.py b/research/cv/efficientnet-b0/src/loss.py
index 6d63b6669..8400b5413 100644
--- a/research/cv/efficientnet-b0/src/loss.py
+++ b/research/cv/efficientnet-b0/src/loss.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/efficientnet-b1/src/loss.py b/research/cv/efficientnet-b1/src/loss.py
index 06cb51616..14ebd144f 100644
--- a/research/cv/efficientnet-b1/src/loss.py
+++ b/research/cv/efficientnet-b1/src/loss.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 # ============================================================================
 """define loss function for network."""
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import operations as P
 from mindspore.ops import functional as F
 from mindspore.common import dtype as mstype
@@ -21,7 +21,7 @@ from mindspore import Tensor
 import mindspore.nn as nn
 
 
-class LabelSmoothingCrossEntropy(_Loss):
+class LabelSmoothingCrossEntropy(LossBase):
     """LabelSmoothingCrossEntropy"""
     def __init__(self, smooth_factor=0.1, num_classes=1000):
         super(LabelSmoothingCrossEntropy, self).__init__()
@@ -38,7 +38,7 @@ class LabelSmoothingCrossEntropy(_Loss):
         return loss_logit
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/efficientnet-b3/src/loss.py b/research/cv/efficientnet-b3/src/loss.py
index 6d63b6669..8400b5413 100644
--- a/research/cv/efficientnet-b3/src/loss.py
+++ b/research/cv/efficientnet-b3/src/loss.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/fishnet99/eval.py b/research/cv/fishnet99/eval.py
index 4cebaf5c1..84cabbeaa 100644
--- a/research/cv/fishnet99/eval.py
+++ b/research/cv/fishnet99/eval.py
@@ -24,7 +24,7 @@ from mindspore.train.serialization import load_checkpoint, load_param_into_net
 from mindspore.common import set_seed
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
@@ -43,7 +43,7 @@ parser.add_argument('--checkpoint_path', type=str, default='./ckpt_0', help='Che
 args_opt = parser.parse_args()
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/fishnet99/train.py b/research/cv/fishnet99/train.py
index a5401d158..3901c2b2a 100644
--- a/research/cv/fishnet99/train.py
+++ b/research/cv/fishnet99/train.py
@@ -31,7 +31,7 @@ from mindspore.context import ParallelMode
 from mindspore.train.serialization import load_checkpoint, load_param_into_net
 from mindspore.common import set_seed
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
@@ -81,7 +81,7 @@ def warmup_cosine_annealing_lr(lr5, steps_per_epoch, warmup_epochs, max_epoch, T
     return np.array(lr_each_step).astype(np.float32)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/ghostnet/src/CrossEntropySmooth.py b/research/cv/ghostnet/src/CrossEntropySmooth.py
index 6d63b6669..8400b5413 100644
--- a/research/cv/ghostnet/src/CrossEntropySmooth.py
+++ b/research/cv/ghostnet/src/CrossEntropySmooth.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/inception_resnet_v2/modelarts/train_start.py b/research/cv/inception_resnet_v2/modelarts/train_start.py
index 37ab60bfb..83162b746 100644
--- a/research/cv/inception_resnet_v2/modelarts/train_start.py
+++ b/research/cv/inception_resnet_v2/modelarts/train_start.py
@@ -33,7 +33,7 @@ from mindspore.common.initializer import XavierUniform, initializer
 from mindspore.communication import init
 from mindspore.context import ParallelMode
 from mindspore.nn import RMSProp, Momentum
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.train.callback import ModelCheckpoint, CheckpointConfig, TimeMonitor, LossMonitor
 from mindspore.train.loss_scale_manager import FixedLossScaleManager
 from mindspore.train.serialization import load_checkpoint, load_param_into_net
@@ -65,7 +65,7 @@ args = arg_parser.parse_args()
 set_seed(1)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
diff --git a/research/cv/inception_resnet_v2/train.py b/research/cv/inception_resnet_v2/train.py
index 34f42bd1a..e5de258f7 100644
--- a/research/cv/inception_resnet_v2/train.py
+++ b/research/cv/inception_resnet_v2/train.py
@@ -29,7 +29,7 @@ from mindspore.common.initializer import XavierUniform, initializer
 from mindspore.communication import init, get_rank
 from mindspore.context import ParallelMode
 from mindspore.nn import RMSProp, Momentum
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.train.callback import ModelCheckpoint, CheckpointConfig, TimeMonitor, LossMonitor
 from mindspore.train.loss_scale_manager import FixedLossScaleManager
 from mindspore.train.serialization import load_checkpoint, load_param_into_net
@@ -42,7 +42,7 @@ os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python'
 set_seed(1)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
diff --git a/research/cv/mnasnet/src/loss.py b/research/cv/mnasnet/src/loss.py
index 6d63b6669..8400b5413 100644
--- a/research/cv/mnasnet/src/loss.py
+++ b/research/cv/mnasnet/src/loss.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/mobilenetV3_small_x1_0/src/loss.py b/research/cv/mobilenetV3_small_x1_0/src/loss.py
index 827f15ccb..4b1af5aa1 100644
--- a/research/cv/mobilenetV3_small_x1_0/src/loss.py
+++ b/research/cv/mobilenetV3_small_x1_0/src/loss.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropyWithLabelSmooth(_Loss):
+class CrossEntropyWithLabelSmooth(LossBase):
     """CrossEntropyWithLabelSmooth"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropyWithLabelSmooth, self).__init__()
diff --git a/research/cv/mobilenetv3_large/train.py b/research/cv/mobilenetv3_large/train.py
index 75fbd9437..8daf1d726 100644
--- a/research/cv/mobilenetv3_large/train.py
+++ b/research/cv/mobilenetv3_large/train.py
@@ -25,7 +25,7 @@ from mindspore import Tensor
 from mindspore import nn
 from mindspore.nn.optim.momentum import Momentum
 from mindspore.nn.loss import SoftmaxCrossEntropyWithLogits
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import operations as P
 from mindspore.ops import functional as F
 from mindspore.common import dtype as mstype
@@ -90,7 +90,7 @@ class SaveCallback(Callback):
             print("Save the maximum accuracy checkpoint,the accuracy is", self.acc)
 
 
-class CrossEntropyWithLabelSmooth(_Loss):
+class CrossEntropyWithLabelSmooth(LossBase):
     """
     CrossEntropyWith LabelSmooth.
 
diff --git a/research/cv/pointnet2/src/pointnet2.py b/research/cv/pointnet2/src/pointnet2.py
index 57ec6408f..9e12ce7df 100644
--- a/research/cv/pointnet2/src/pointnet2.py
+++ b/research/cv/pointnet2/src/pointnet2.py
@@ -16,7 +16,7 @@
 
 import mindspore.nn as nn
 import mindspore.ops as P
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 
 from src.layers import Dense
@@ -74,7 +74,7 @@ class PointNet2(nn.Cell):
         return x
 
 
-class NLLLoss(_Loss):
+class NLLLoss(LossBase):
     """NLL loss"""
 
     def __init__(self, reduction='mean'):
diff --git a/research/cv/resnet3d/src/loss.py b/research/cv/resnet3d/src/loss.py
index b91818183..4f66d40ae 100644
--- a/research/cv/resnet3d/src/loss.py
+++ b/research/cv/resnet3d/src/loss.py
@@ -18,7 +18,7 @@ define loss for resnet3d
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 import mindspore.ops as ops
@@ -61,7 +61,7 @@ class SoftmaxCrossEntropyExpand(nn.Cell):  # pylint: disable=missing-docstring
         return loss
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=101):
diff --git a/research/cv/resnet50_bam/eval.py b/research/cv/resnet50_bam/eval.py
index 7244e79ab..4f2240963 100644
--- a/research/cv/resnet50_bam/eval.py
+++ b/research/cv/resnet50_bam/eval.py
@@ -24,7 +24,7 @@ from mindspore.train.serialization import load_checkpoint, load_param_into_net
 from mindspore.common import set_seed
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
@@ -45,7 +45,7 @@ parser.add_argument('--device_id', type=str, default=0, help='Device id.')
 args_opt = parser.parse_args()
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/resnet50_bam/train.py b/research/cv/resnet50_bam/train.py
index 0427dcc2a..59da4f65d 100644
--- a/research/cv/resnet50_bam/train.py
+++ b/research/cv/resnet50_bam/train.py
@@ -29,7 +29,7 @@ from mindspore.communication.management import get_group_size
 from mindspore.communication.management import get_rank
 from mindspore.communication.management import init
 from mindspore.context import ParallelMode
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.nn.optim.momentum import Momentum
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
@@ -90,7 +90,7 @@ def warmup_cosine_annealing_lr(lr5, steps_per_epoch, warmup_epochs, max_epoch, T
     return np.array(lr_each_step).astype(np.float32)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/resnext152_64x4d/src/crossentropy.py b/research/cv/resnext152_64x4d/src/crossentropy.py
index a5abe6021..01039e39e 100644
--- a/research/cv/resnext152_64x4d/src/crossentropy.py
+++ b/research/cv/resnext152_64x4d/src/crossentropy.py
@@ -15,14 +15,14 @@
 """
 define loss function for network.
 """
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import operations as P
 from mindspore.ops import functional as F
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
 import mindspore.nn as nn
 
-class CrossEntropy(_Loss):
+class CrossEntropy(LossBase):
     """
     the redefined loss function with SoftmaxCrossEntropyWithLogits.
     """
diff --git a/research/cv/simple_baselines/src/network_with_loss.py b/research/cv/simple_baselines/src/network_with_loss.py
index 011b8be01..d671e68ea 100644
--- a/research/cv/simple_baselines/src/network_with_loss.py
+++ b/research/cv/simple_baselines/src/network_with_loss.py
@@ -20,10 +20,10 @@ from __future__ import division
 import mindspore.nn as nn
 from mindspore.ops import operations as P
 from mindspore.ops import functional as F
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.common import dtype as mstype
 
-class JointsMSELoss(_Loss):
+class JointsMSELoss(LossBase):
     '''
     JointsMSELoss
     '''
diff --git a/research/cv/single_path_nas/eval.py b/research/cv/single_path_nas/eval.py
index cbba5a025..ddd8a3e4b 100644
--- a/research/cv/single_path_nas/eval.py
+++ b/research/cv/single_path_nas/eval.py
@@ -23,7 +23,7 @@ from mindspore import Tensor
 from mindspore import context
 from mindspore.common import dtype as mstype
 from mindspore.common import set_seed
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 from mindspore.train.model import Model
@@ -48,7 +48,7 @@ parser.add_argument('--device_id', type=int, default=None, help='device id of As
 args_opt = parser.parse_args()
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
diff --git a/research/cv/single_path_nas/src/CrossEntropySmooth.py b/research/cv/single_path_nas/src/CrossEntropySmooth.py
index 6d63b6669..8400b5413 100644
--- a/research/cv/single_path_nas/src/CrossEntropySmooth.py
+++ b/research/cv/single_path_nas/src/CrossEntropySmooth.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/sknet/src/CrossEntropySmooth.py b/research/cv/sknet/src/CrossEntropySmooth.py
index 6d63b6669..8400b5413 100644
--- a/research/cv/sknet/src/CrossEntropySmooth.py
+++ b/research/cv/sknet/src/CrossEntropySmooth.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/squeezenet1_1/src/CrossEntropySmooth.py b/research/cv/squeezenet1_1/src/CrossEntropySmooth.py
index 6d63b6669..8400b5413 100644
--- a/research/cv/squeezenet1_1/src/CrossEntropySmooth.py
+++ b/research/cv/squeezenet1_1/src/CrossEntropySmooth.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/swin_transformer/src/tools/criterion.py b/research/cv/swin_transformer/src/tools/criterion.py
index 1afdd719f..ee963c1fe 100644
--- a/research/cv/swin_transformer/src/tools/criterion.py
+++ b/research/cv/swin_transformer/src/tools/criterion.py
@@ -17,12 +17,12 @@ import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore import ops
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class SoftTargetCrossEntropy(_Loss):
+class SoftTargetCrossEntropy(LossBase):
     """SoftTargetCrossEntropy for MixUp Augment"""
 
     def __init__(self):
@@ -38,7 +38,7 @@ class SoftTargetCrossEntropy(_Loss):
         return self.mean_ops(loss)
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
 
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
diff --git a/research/cv/tsm/src/model/cross_entropy_smooth.py b/research/cv/tsm/src/model/cross_entropy_smooth.py
index 5b0b977e7..596a7c867 100644
--- a/research/cv/tsm/src/model/cross_entropy_smooth.py
+++ b/research/cv/tsm/src/model/cross_entropy_smooth.py
@@ -16,12 +16,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=174):
         super(CrossEntropySmooth, self).__init__()
diff --git a/research/cv/wideresnet/src/cross_entropy_smooth.py b/research/cv/wideresnet/src/cross_entropy_smooth.py
index a12c43aff..b6d43e1ef 100644
--- a/research/cv/wideresnet/src/cross_entropy_smooth.py
+++ b/research/cv/wideresnet/src/cross_entropy_smooth.py
@@ -17,12 +17,12 @@
 import mindspore.nn as nn
 from mindspore import Tensor
 from mindspore.common import dtype as mstype
-from mindspore.nn.loss.loss import _Loss
+from mindspore.nn.loss.loss import LossBase
 from mindspore.ops import functional as F
 from mindspore.ops import operations as P
 
 
-class CrossEntropySmooth(_Loss):
+class CrossEntropySmooth(LossBase):
     """CrossEntropy"""
     def __init__(self, sparse=True, reduction='mean', smooth_factor=0., num_classes=1000):
         super(CrossEntropySmooth, self).__init__()
-- 
GitLab