diff --git a/research/cv/metric_learn/README_CN.md b/research/cv/metric_learn/README_CN.md index 1588e0afaa800b983dbf6664caf2eaa0c79df58b..702278b9d5aa7f050bd1932d9e12b18d63300f08 100644 --- a/research/cv/metric_learn/README_CN.md +++ b/research/cv/metric_learn/README_CN.md @@ -30,7 +30,7 @@ 濡備笅涓篗indSpore浣跨敤Triplet loss鍜孮uadruptlet loss鍦⊿OP鏁版嵁闆嗚皟浼楻esNet50鐨勭ず渚嬶紝Triplet loss鍙弬鑰僛璁烘枃1](https://arxiv.org/abs/1503.03832)锛孮uadruptlet loss鏄疶riplet loss鐨勪竴涓彉浣擄紝鍙弬鑰僛璁烘枃2](https://arxiv.org/abs/1704.01719)銆� -涓轰簡璁粌搴﹂噺瀛︿範妯″瀷锛屾垜浠渶瑕佷竴涓缁忕綉缁滄ā鍨嬩綔涓洪鏋舵ā鍨嬶紙ResNet50锛夊拰搴﹂噺瀛︿範浠d环鍑芥暟鏉ヨ繘琛屼紭鍖栥€傛畫宸缁忕綉缁滐紙ResNet锛夌敱寰蒋鐮旂┒闄綍鍑槑绛変簲浣嶅崕浜烘彁鍑猴紝鏁堟灉闈炲父鏄捐憲銆傛暣涓綉缁滃彧闇€瑕佸涔犺緭鍏ュ拰杈撳嚭鐨勫樊寮傞儴鍒嗭紝绠€鍖栦簡瀛︿範鐩爣鍜岄毦搴︺€俁esNet鐨勭粨鏋勫ぇ骞呮彁楂樹簡绁炵粡缃戠粶璁粌鐨勯€熷害锛屽苟涓斿ぇ澶ф彁楂樹簡妯″瀷鐨勫噯纭巼銆傛鍥犲姝わ紝ResNet鍗佸垎鍙楁杩庯紝缁忓父琚悇涓鍩熺敤浣渂ackbone缃戠粶锛屽湪杩欓€夋嫨ResNet-50缁撴瀯浣滀负搴﹂噺瀛︿範鐨勪富骞茬綉缁溿€傛垜浠鍏堜娇鐢╯oftmax鏉ヨ繘琛岄璁粌锛岀劧鍚庝娇鐢ㄥ叾瀹冪殑浠d环鍑芥暟鏉ヨ繘琛屽井璋冿紝渚嬪锛歵riplet锛宷uadruplet銆備笅闈㈠氨鏄厛鍦⊿OP鏁版嵁闆嗕笂棰勮缁冧釜pretrain妯″瀷锛岀劧鍚庣敤triplet锛宷uadruplet浠d环鍑芥暟鏉ュ井璋冧粠softmax寰楀埌鐨刾retrain妯″瀷锛屼娇鐢�8鍗scend 910璁粌缃戠粶妯″瀷锛屼粎闇€30涓懆鏈燂紝灏卞彲浠ュ湪SOP鏁版嵁闆嗙殑5184绉嶇被鍒笂锛孴OP1鍑嗙‘鐜囪揪鍒颁簡73.9%鍜�74.3%銆� +涓轰簡璁粌搴﹂噺瀛︿範妯″瀷锛屾垜浠渶瑕佷竴涓缁忕綉缁滄ā鍨嬩綔涓洪鏋舵ā鍨嬶紙ResNet50锛夊拰搴﹂噺瀛︿範浠d环鍑芥暟鏉ヨ繘琛屼紭鍖栥€傛畫宸缁忕綉缁滐紙ResNet锛夌敱寰蒋鐮旂┒闄綍鍑槑绛変簲浣嶅崕浜烘彁鍑猴紝鏁堟灉闈炲父鏄捐憲銆傛暣涓綉缁滃彧闇€瑕佸涔犺緭鍏ュ拰杈撳嚭鐨勫樊寮傞儴鍒嗭紝绠€鍖栦簡瀛︿範鐩爣鍜岄毦搴︺€俁esNet鐨勭粨鏋勫ぇ骞呮彁楂樹簡绁炵粡缃戠粶璁粌鐨勯€熷害锛屽苟涓斿ぇ澶ф彁楂樹簡妯″瀷鐨勫噯纭巼銆傛鍥犲姝わ紝ResNet鍗佸垎鍙楁杩庯紝缁忓父琚悇涓鍩熺敤浣渂ackbone缃戠粶锛屽湪杩欓€夋嫨ResNet-50缁撴瀯浣滀负搴﹂噺瀛︿範鐨勪富骞茬綉缁溿€傛垜浠鍏堝姞杞絉esNet-50-ImageNet[妯″瀷鏉冮噸](https://www.mindspore.cn/resources/hub/details/en?MindSpore/ascend/1.3/resnet50_v1.3_imagenet2012)浣滀负棰勮缁冩ā鍨嬶紝鐒跺悗淇敼鍒嗙被灞備娇鐢╯oftmax鍑芥暟鍦⊿OP鏁版嵁闆嗕笂瀵规ā鍨嬭繘琛屽井璋冿紝鏈€鍚庡埄鐢ㄥ害閲忓涔犳崯澶憋紙渚嬪锛歵riplet锛宷uadruplet锛夎繘涓€姝inetune妯″瀷銆備笅闈㈠氨鏄湪SOP鏁版嵁闆嗕笂鍒嗗埆浣跨敤softmax銆乼riplet鍜宷uadruplet浠d环鍑芥暟寰皟鐨勭粨鏋滐紝浣跨敤8鍗scend 910璁粌缃戠粶妯″瀷锛屼粎闇€30涓懆鏈燂紝灏卞彲浠ュ湪SOP鏁版嵁闆嗙殑5184绉嶇被鍒笂锛孴OP1鍑嗙‘鐜囪揪鍒颁簡73.9%鍜�74.3%銆� ## 璁烘枃 diff --git a/research/cv/metric_learn/src/loss.py b/research/cv/metric_learn/src/loss.py index a2902ddc27d3f877271bd33dbf8f94b20c0f2a31..93c244a626149ca07e909d2ccfd92109ca10cb8f 100644 --- a/research/cv/metric_learn/src/loss.py +++ b/research/cv/metric_learn/src/loss.py @@ -18,10 +18,11 @@ import mindspore import mindspore.nn as nn from mindspore import Tensor from mindspore.common import dtype as mstype +from mindspore.nn.loss.loss import LossBase from mindspore.ops import operations as P from mindspore.ops import functional as F -class Softmaxloss(): +class Softmaxloss(LossBase): """Softmaxloss""" def __init__(self, sparse=True, smooth_factor=0.1, num_classes=5184): super(Softmaxloss, self).__init__() @@ -37,7 +38,7 @@ class Softmaxloss(): loss = self.ce(logit, label) return loss -class Tripletloss(): +class Tripletloss(LossBase): """Tripletloss""" def __init__(self, margin=0.1): super(Tripletloss, self).__init__() @@ -92,7 +93,7 @@ def generate_index(batch_size, samples_each_class): res = np.array(res).astype(np.int32) return res -class Quadrupletloss(): +class Quadrupletloss(LossBase): """Quadrupletloss""" def __init__(self, train_batch_size=30, samples_each_class=2, margin=0.1): super(Quadrupletloss, self).__init__()