commit
7b7dee6583
|
@ -11,7 +11,7 @@ PaddleClas is a toolset for image classification tasks prepared for the industry
|
|||
- 2021.06.16 PaddleClas release/2.2.
|
||||
- Add metric learning and vector search module.
|
||||
- Add product recognition, cartoon character recognition, car recognition and logo recognition.
|
||||
- Added 30 pretrained models of LeViT, Twins, TNT, DLA, HarDNet, and RedNet, and the accuracy is roughly the same as that of the paper.
|
||||
- Add 30 pretrained models of LeViT, Twins, TNT, DLA, HarDNet, and RedNet, and the accuracy is roughly the same as that of the paper.
|
||||
- [more](./docs/en/update_history_en.md)
|
||||
|
||||
|
||||
|
|
|
@ -45,7 +45,6 @@ from ppcls.arch.backbone.model_zoo.darknet import DarkNet53
|
|||
from ppcls.arch.backbone.model_zoo.regnet import RegNetX_200MF, RegNetX_4GF, RegNetX_32GF, RegNetY_200MF, RegNetY_4GF, RegNetY_32GF
|
||||
from ppcls.arch.backbone.model_zoo.vision_transformer import ViT_small_patch16_224, ViT_base_patch16_224, ViT_base_patch16_384, ViT_base_patch32_384, ViT_large_patch16_224, ViT_large_patch16_384, ViT_large_patch32_384, ViT_huge_patch16_224, ViT_huge_patch32_384
|
||||
from ppcls.arch.backbone.model_zoo.distilled_vision_transformer import DeiT_tiny_patch16_224, DeiT_small_patch16_224, DeiT_base_patch16_224, DeiT_tiny_distilled_patch16_224, DeiT_small_distilled_patch16_224, DeiT_base_distilled_patch16_224, DeiT_base_patch16_384, DeiT_base_distilled_patch16_384
|
||||
from ppcls.arch.backbone.model_zoo.distillation_models import ResNet50_vd_distill_MobileNetV3_large_x1_0, ResNeXt101_32x16d_wsl_distill_ResNet50_vd
|
||||
from ppcls.arch.backbone.model_zoo.swin_transformer import SwinTransformer_tiny_patch4_window7_224, SwinTransformer_small_patch4_window7_224, SwinTransformer_base_patch4_window7_224, SwinTransformer_base_patch4_window12_384, SwinTransformer_large_patch4_window7_224, SwinTransformer_large_patch4_window12_384
|
||||
from ppcls.arch.backbone.model_zoo.mixnet import MixNet_S, MixNet_M, MixNet_L
|
||||
from ppcls.arch.backbone.model_zoo.rexnet import ReXNet_1_0, ReXNet_1_3, ReXNet_1_5, ReXNet_2_0, ReXNet_3_0
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
|
||||
import math
|
||||
|
||||
import paddle
|
||||
import paddle.nn as nn
|
||||
|
||||
from .resnet_vd import ResNet50_vd
|
||||
from .mobilenet_v3 import MobileNetV3_large_x1_0
|
||||
from .resnext101_wsl import ResNeXt101_32x16d_wsl
|
||||
|
||||
__all__ = [
|
||||
'ResNet50_vd_distill_MobileNetV3_large_x1_0',
|
||||
'ResNeXt101_32x16d_wsl_distill_ResNet50_vd'
|
||||
]
|
||||
|
||||
|
||||
class ResNet50_vd_distill_MobileNetV3_large_x1_0(nn.Layer):
|
||||
def __init__(self, class_dim=1000, freeze_teacher=True, **args):
|
||||
super(ResNet50_vd_distill_MobileNetV3_large_x1_0, self).__init__()
|
||||
|
||||
self.teacher = ResNet50_vd(class_dim=class_dim, **args)
|
||||
self.student = MobileNetV3_large_x1_0(class_dim=class_dim, **args)
|
||||
|
||||
if freeze_teacher:
|
||||
for param in self.teacher.parameters():
|
||||
param.trainable = False
|
||||
|
||||
def forward(self, x):
|
||||
teacher_label = self.teacher(x)
|
||||
student_label = self.student(x)
|
||||
return teacher_label, student_label
|
||||
|
||||
|
||||
class ResNeXt101_32x16d_wsl_distill_ResNet50_vd(nn.Layer):
|
||||
def __init__(self, class_dim=1000, freeze_teacher=True, **args):
|
||||
super(ResNeXt101_32x16d_wsl_distill_ResNet50_vd, self).__init__()
|
||||
|
||||
self.teacher = ResNeXt101_32x16d_wsl(class_dim=class_dim, **args)
|
||||
self.student = ResNet50_vd(class_dim=class_dim, **args)
|
||||
|
||||
if freeze_teacher:
|
||||
for param in self.teacher.parameters():
|
||||
param.trainable = False
|
||||
|
||||
def forward(self, x):
|
||||
teacher_label = self.teacher(x)
|
||||
student_label = self.student(x)
|
||||
return teacher_label, student_label
|
|
@ -19,6 +19,9 @@ Global:
|
|||
# model architecture
|
||||
Arch:
|
||||
name: RecModel
|
||||
infer_output_key: features
|
||||
infer_add_softmax: False
|
||||
|
||||
Backbone:
|
||||
name: ResNet50_vd
|
||||
pretrained: True
|
||||
|
|
Loading…
Reference in New Issue