Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
6cb17cfe
P
PaddleClas
项目概览
PaddlePaddle
/
PaddleClas
大约 1 年 前同步成功
通知
115
Star
4999
Fork
1114
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
6
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleClas
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
6
合并请求
6
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6cb17cfe
编写于
8月 17, 2022
作者:
R
root
提交者:
Tingquan Gao
8月 23, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: change to relative import
上级
d82e27fd
变更
71
隐藏空白更改
内联
并排
Showing
71 changed file
with
668 addition
and
174 deletion
+668
-174
__init__.py
__init__.py
+1
-1
ppcls/arch/__init__.py
ppcls/arch/__init__.py
+5
-5
ppcls/arch/backbone/__init__.py
ppcls/arch/backbone/__init__.py
+55
-55
ppcls/arch/backbone/base/theseus_layer.py
ppcls/arch/backbone/base/theseus_layer.py
+1
-1
ppcls/arch/backbone/legendary_models/esnet.py
ppcls/arch/backbone/legendary_models/esnet.py
+2
-2
ppcls/arch/backbone/legendary_models/hrnet.py
ppcls/arch/backbone/legendary_models/hrnet.py
+2
-2
ppcls/arch/backbone/legendary_models/inception_v3.py
ppcls/arch/backbone/legendary_models/inception_v3.py
+2
-2
ppcls/arch/backbone/legendary_models/mobilenet_v1.py
ppcls/arch/backbone/legendary_models/mobilenet_v1.py
+2
-2
ppcls/arch/backbone/legendary_models/mobilenet_v3.py
ppcls/arch/backbone/legendary_models/mobilenet_v3.py
+3
-2
ppcls/arch/backbone/legendary_models/pp_hgnet.py
ppcls/arch/backbone/legendary_models/pp_hgnet.py
+4
-3
ppcls/arch/backbone/legendary_models/pp_lcnet.py
ppcls/arch/backbone/legendary_models/pp_lcnet.py
+18
-22
ppcls/arch/backbone/legendary_models/pp_lcnet_v2.py
ppcls/arch/backbone/legendary_models/pp_lcnet_v2.py
+3
-2
ppcls/arch/backbone/legendary_models/resnet.py
ppcls/arch/backbone/legendary_models/resnet.py
+4
-4
ppcls/arch/backbone/legendary_models/swin_transformer.py
ppcls/arch/backbone/legendary_models/swin_transformer.py
+3
-3
ppcls/arch/backbone/legendary_models/vgg.py
ppcls/arch/backbone/legendary_models/vgg.py
+2
-2
ppcls/arch/backbone/model_zoo/alexnet.py
ppcls/arch/backbone/model_zoo/alexnet.py
+1
-1
ppcls/arch/backbone/model_zoo/convnext.py
ppcls/arch/backbone/model_zoo/convnext.py
+232
-0
ppcls/arch/backbone/model_zoo/cspnet.py
ppcls/arch/backbone/model_zoo/cspnet.py
+1
-1
ppcls/arch/backbone/model_zoo/cswin_transformer.py
ppcls/arch/backbone/model_zoo/cswin_transformer.py
+1
-1
ppcls/arch/backbone/model_zoo/darknet.py
ppcls/arch/backbone/model_zoo/darknet.py
+1
-1
ppcls/arch/backbone/model_zoo/densenet.py
ppcls/arch/backbone/model_zoo/densenet.py
+1
-1
ppcls/arch/backbone/model_zoo/distilled_vision_transformer.py
...s/arch/backbone/model_zoo/distilled_vision_transformer.py
+1
-1
ppcls/arch/backbone/model_zoo/dla.py
ppcls/arch/backbone/model_zoo/dla.py
+2
-2
ppcls/arch/backbone/model_zoo/dpn.py
ppcls/arch/backbone/model_zoo/dpn.py
+1
-1
ppcls/arch/backbone/model_zoo/efficientnet.py
ppcls/arch/backbone/model_zoo/efficientnet.py
+1
-1
ppcls/arch/backbone/model_zoo/ghostnet.py
ppcls/arch/backbone/model_zoo/ghostnet.py
+1
-1
ppcls/arch/backbone/model_zoo/googlenet.py
ppcls/arch/backbone/model_zoo/googlenet.py
+1
-1
ppcls/arch/backbone/model_zoo/gvt.py
ppcls/arch/backbone/model_zoo/gvt.py
+1
-1
ppcls/arch/backbone/model_zoo/hardnet.py
ppcls/arch/backbone/model_zoo/hardnet.py
+1
-1
ppcls/arch/backbone/model_zoo/inception_v4.py
ppcls/arch/backbone/model_zoo/inception_v4.py
+1
-1
ppcls/arch/backbone/model_zoo/levit.py
ppcls/arch/backbone/model_zoo/levit.py
+1
-1
ppcls/arch/backbone/model_zoo/mixnet.py
ppcls/arch/backbone/model_zoo/mixnet.py
+1
-1
ppcls/arch/backbone/model_zoo/mobilenet_v2.py
ppcls/arch/backbone/model_zoo/mobilenet_v2.py
+1
-1
ppcls/arch/backbone/model_zoo/mobilevit.py
ppcls/arch/backbone/model_zoo/mobilevit.py
+1
-1
ppcls/arch/backbone/model_zoo/peleenet.py
ppcls/arch/backbone/model_zoo/peleenet.py
+263
-0
ppcls/arch/backbone/model_zoo/pvt_v2.py
ppcls/arch/backbone/model_zoo/pvt_v2.py
+1
-1
ppcls/arch/backbone/model_zoo/rednet.py
ppcls/arch/backbone/model_zoo/rednet.py
+1
-1
ppcls/arch/backbone/model_zoo/regnet.py
ppcls/arch/backbone/model_zoo/regnet.py
+1
-1
ppcls/arch/backbone/model_zoo/repvgg.py
ppcls/arch/backbone/model_zoo/repvgg.py
+1
-1
ppcls/arch/backbone/model_zoo/res2net.py
ppcls/arch/backbone/model_zoo/res2net.py
+1
-1
ppcls/arch/backbone/model_zoo/res2net_vd.py
ppcls/arch/backbone/model_zoo/res2net_vd.py
+1
-1
ppcls/arch/backbone/model_zoo/resnest.py
ppcls/arch/backbone/model_zoo/resnest.py
+1
-1
ppcls/arch/backbone/model_zoo/resnet_vc.py
ppcls/arch/backbone/model_zoo/resnet_vc.py
+1
-1
ppcls/arch/backbone/model_zoo/resnext.py
ppcls/arch/backbone/model_zoo/resnext.py
+1
-1
ppcls/arch/backbone/model_zoo/resnext101_wsl.py
ppcls/arch/backbone/model_zoo/resnext101_wsl.py
+1
-1
ppcls/arch/backbone/model_zoo/resnext_vd.py
ppcls/arch/backbone/model_zoo/resnext_vd.py
+1
-1
ppcls/arch/backbone/model_zoo/rexnet.py
ppcls/arch/backbone/model_zoo/rexnet.py
+1
-1
ppcls/arch/backbone/model_zoo/se_resnet_vd.py
ppcls/arch/backbone/model_zoo/se_resnet_vd.py
+1
-1
ppcls/arch/backbone/model_zoo/se_resnext.py
ppcls/arch/backbone/model_zoo/se_resnext.py
+1
-1
ppcls/arch/backbone/model_zoo/se_resnext_vd.py
ppcls/arch/backbone/model_zoo/se_resnext_vd.py
+1
-1
ppcls/arch/backbone/model_zoo/shufflenet_v2.py
ppcls/arch/backbone/model_zoo/shufflenet_v2.py
+1
-1
ppcls/arch/backbone/model_zoo/squeezenet.py
ppcls/arch/backbone/model_zoo/squeezenet.py
+1
-1
ppcls/arch/backbone/model_zoo/tnt.py
ppcls/arch/backbone/model_zoo/tnt.py
+2
-2
ppcls/arch/backbone/model_zoo/van.py
ppcls/arch/backbone/model_zoo/van.py
+1
-1
ppcls/arch/backbone/model_zoo/vision_transformer.py
ppcls/arch/backbone/model_zoo/vision_transformer.py
+1
-1
ppcls/arch/backbone/model_zoo/xception.py
ppcls/arch/backbone/model_zoo/xception.py
+1
-1
ppcls/arch/backbone/model_zoo/xception_deeplab.py
ppcls/arch/backbone/model_zoo/xception_deeplab.py
+1
-1
ppcls/arch/backbone/variant_models/pp_lcnet_variant.py
ppcls/arch/backbone/variant_models/pp_lcnet_variant.py
+1
-1
ppcls/arch/backbone/variant_models/resnet_variant.py
ppcls/arch/backbone/variant_models/resnet_variant.py
+1
-1
ppcls/arch/backbone/variant_models/vgg_variant.py
ppcls/arch/backbone/variant_models/vgg_variant.py
+1
-1
ppcls/arch/gears/bnneck.py
ppcls/arch/gears/bnneck.py
+1
-1
ppcls/arch/gears/fc.py
ppcls/arch/gears/fc.py
+1
-1
ppcls/arch/slim/__init__.py
ppcls/arch/slim/__init__.py
+2
-2
ppcls/arch/slim/prune.py
ppcls/arch/slim/prune.py
+1
-2
ppcls/arch/slim/quant.py
ppcls/arch/slim/quant.py
+1
-1
ppcls/utils/check.py
ppcls/utils/check.py
+2
-2
ppcls/utils/config.py
ppcls/utils/config.py
+3
-2
ppcls/utils/download.py
ppcls/utils/download.py
+1
-1
ppcls/utils/gallery2fc.py
ppcls/utils/gallery2fc.py
+6
-6
ppcls/utils/model_zoo.py
ppcls/utils/model_zoo.py
+2
-2
ppcls/utils/save_load.py
ppcls/utils/save_load.py
+1
-1
未找到文件。
__init__.py
浏览文件 @
6cb17cfe
...
...
@@ -14,4 +14,4 @@
__all__
=
[
'PaddleClas'
]
from
.paddleclas
import
PaddleClas
from
ppcls.arch.backbone
import
*
from
.
ppcls.arch.backbone
import
*
ppcls/arch/__init__.py
浏览文件 @
6cb17cfe
...
...
@@ -23,11 +23,11 @@ from . import backbone, gears
from
.backbone
import
*
from
.gears
import
build_gear
from
.utils
import
*
from
ppcls.arch
.backbone.base.theseus_layer
import
TheseusLayer
from
ppcls
.utils
import
logger
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
from
ppcls.arch
.slim
import
prune_model
,
quantize_model
from
ppcls.arch
.distill.afd_attention
import
LinearTransformStudent
,
LinearTransformTeacher
from
.backbone.base.theseus_layer
import
TheseusLayer
from
.
.utils
import
logger
from
.
.utils.save_load
import
load_dygraph_pretrain
from
.slim
import
prune_model
,
quantize_model
from
.distill.afd_attention
import
LinearTransformStudent
,
LinearTransformTeacher
__all__
=
[
"build_model"
,
"RecModel"
,
"DistillationModel"
,
"AttentionModel"
]
...
...
ppcls/arch/backbone/__init__.py
浏览文件 @
6cb17cfe
...
...
@@ -15,62 +15,62 @@
import
sys
import
inspect
from
ppcls.arch.backbone
.legendary_models.mobilenet_v1
import
MobileNetV1_x0_25
,
MobileNetV1_x0_5
,
MobileNetV1_x0_75
,
MobileNetV1
from
ppcls.arch.backbone
.legendary_models.mobilenet_v3
import
MobileNetV3_small_x0_35
,
MobileNetV3_small_x0_5
,
MobileNetV3_small_x0_75
,
MobileNetV3_small_x1_0
,
MobileNetV3_small_x1_25
,
MobileNetV3_large_x0_35
,
MobileNetV3_large_x0_5
,
MobileNetV3_large_x0_75
,
MobileNetV3_large_x1_0
,
MobileNetV3_large_x1_25
from
ppcls.arch.backbone
.legendary_models.resnet
import
ResNet18
,
ResNet18_vd
,
ResNet34
,
ResNet34_vd
,
ResNet50
,
ResNet50_vd
,
ResNet101
,
ResNet101_vd
,
ResNet152
,
ResNet152_vd
,
ResNet200_vd
from
ppcls.arch.backbone
.legendary_models.vgg
import
VGG11
,
VGG13
,
VGG16
,
VGG19
from
ppcls.arch.backbone
.legendary_models.inception_v3
import
InceptionV3
from
ppcls.arch.backbone
.legendary_models.hrnet
import
HRNet_W18_C
,
HRNet_W30_C
,
HRNet_W32_C
,
HRNet_W40_C
,
HRNet_W44_C
,
HRNet_W48_C
,
HRNet_W60_C
,
HRNet_W64_C
,
SE_HRNet_W64_C
from
ppcls.arch.backbone
.legendary_models.pp_lcnet
import
PPLCNet_x0_25
,
PPLCNet_x0_35
,
PPLCNet_x0_5
,
PPLCNet_x0_75
,
PPLCNet_x1_0
,
PPLCNet_x1_5
,
PPLCNet_x2_0
,
PPLCNet_x2_5
from
ppcls.arch.backbone
.legendary_models.pp_lcnet_v2
import
PPLCNetV2_base
from
ppcls.arch.backbone
.legendary_models.esnet
import
ESNet_x0_25
,
ESNet_x0_5
,
ESNet_x0_75
,
ESNet_x1_0
from
ppcls.arch.backbone
.legendary_models.pp_hgnet
import
PPHGNet_tiny
,
PPHGNet_small
,
PPHGNet_base
from
.legendary_models.mobilenet_v1
import
MobileNetV1_x0_25
,
MobileNetV1_x0_5
,
MobileNetV1_x0_75
,
MobileNetV1
from
.legendary_models.mobilenet_v3
import
MobileNetV3_small_x0_35
,
MobileNetV3_small_x0_5
,
MobileNetV3_small_x0_75
,
MobileNetV3_small_x1_0
,
MobileNetV3_small_x1_25
,
MobileNetV3_large_x0_35
,
MobileNetV3_large_x0_5
,
MobileNetV3_large_x0_75
,
MobileNetV3_large_x1_0
,
MobileNetV3_large_x1_25
from
.legendary_models.resnet
import
ResNet18
,
ResNet18_vd
,
ResNet34
,
ResNet34_vd
,
ResNet50
,
ResNet50_vd
,
ResNet101
,
ResNet101_vd
,
ResNet152
,
ResNet152_vd
,
ResNet200_vd
from
.legendary_models.vgg
import
VGG11
,
VGG13
,
VGG16
,
VGG19
from
.legendary_models.inception_v3
import
InceptionV3
from
.legendary_models.hrnet
import
HRNet_W18_C
,
HRNet_W30_C
,
HRNet_W32_C
,
HRNet_W40_C
,
HRNet_W44_C
,
HRNet_W48_C
,
HRNet_W60_C
,
HRNet_W64_C
,
SE_HRNet_W64_C
from
.legendary_models.pp_lcnet
import
PPLCNet_x0_25
,
PPLCNet_x0_35
,
PPLCNet_x0_5
,
PPLCNet_x0_75
,
PPLCNet_x1_0
,
PPLCNet_x1_5
,
PPLCNet_x2_0
,
PPLCNet_x2_5
from
.legendary_models.pp_lcnet_v2
import
PPLCNetV2_base
from
.legendary_models.esnet
import
ESNet_x0_25
,
ESNet_x0_5
,
ESNet_x0_75
,
ESNet_x1_0
from
.legendary_models.pp_hgnet
import
PPHGNet_tiny
,
PPHGNet_small
,
PPHGNet_base
from
ppcls.arch.backbone
.model_zoo.resnet_vc
import
ResNet50_vc
from
ppcls.arch.backbone
.model_zoo.resnext
import
ResNeXt50_32x4d
,
ResNeXt50_64x4d
,
ResNeXt101_32x4d
,
ResNeXt101_64x4d
,
ResNeXt152_32x4d
,
ResNeXt152_64x4d
from
ppcls.arch.backbone
.model_zoo.resnext_vd
import
ResNeXt50_vd_32x4d
,
ResNeXt50_vd_64x4d
,
ResNeXt101_vd_32x4d
,
ResNeXt101_vd_64x4d
,
ResNeXt152_vd_32x4d
,
ResNeXt152_vd_64x4d
from
ppcls.arch.backbone
.model_zoo.res2net
import
Res2Net50_26w_4s
,
Res2Net50_14w_8s
from
ppcls.arch.backbone
.model_zoo.res2net_vd
import
Res2Net50_vd_26w_4s
,
Res2Net101_vd_26w_4s
,
Res2Net200_vd_26w_4s
from
ppcls.arch.backbone
.model_zoo.se_resnet_vd
import
SE_ResNet18_vd
,
SE_ResNet34_vd
,
SE_ResNet50_vd
from
ppcls.arch.backbone
.model_zoo.se_resnext_vd
import
SE_ResNeXt50_vd_32x4d
,
SE_ResNeXt50_vd_32x4d
,
SENet154_vd
from
ppcls.arch.backbone
.model_zoo.se_resnext
import
SE_ResNeXt50_32x4d
,
SE_ResNeXt101_32x4d
,
SE_ResNeXt152_64x4d
from
ppcls.arch.backbone
.model_zoo.dpn
import
DPN68
,
DPN92
,
DPN98
,
DPN107
,
DPN131
from
ppcls.arch.backbone
.model_zoo.densenet
import
DenseNet121
,
DenseNet161
,
DenseNet169
,
DenseNet201
,
DenseNet264
from
ppcls.arch.backbone
.model_zoo.efficientnet
import
EfficientNetB0
,
EfficientNetB1
,
EfficientNetB2
,
EfficientNetB3
,
EfficientNetB4
,
EfficientNetB5
,
EfficientNetB6
,
EfficientNetB7
,
EfficientNetB0_small
from
ppcls.arch.backbone
.model_zoo.resnest
import
ResNeSt50_fast_1s1x64d
,
ResNeSt50
,
ResNeSt101
from
ppcls.arch.backbone
.model_zoo.googlenet
import
GoogLeNet
from
ppcls.arch.backbone
.model_zoo.mobilenet_v2
import
MobileNetV2_x0_25
,
MobileNetV2_x0_5
,
MobileNetV2_x0_75
,
MobileNetV2
,
MobileNetV2_x1_5
,
MobileNetV2_x2_0
from
ppcls.arch.backbone
.model_zoo.shufflenet_v2
import
ShuffleNetV2_x0_25
,
ShuffleNetV2_x0_33
,
ShuffleNetV2_x0_5
,
ShuffleNetV2_x1_0
,
ShuffleNetV2_x1_5
,
ShuffleNetV2_x2_0
,
ShuffleNetV2_swish
from
ppcls.arch.backbone
.model_zoo.ghostnet
import
GhostNet_x0_5
,
GhostNet_x1_0
,
GhostNet_x1_3
from
ppcls.arch.backbone
.model_zoo.alexnet
import
AlexNet
from
ppcls.arch.backbone
.model_zoo.inception_v4
import
InceptionV4
from
ppcls.arch.backbone
.model_zoo.xception
import
Xception41
,
Xception65
,
Xception71
from
ppcls.arch.backbone
.model_zoo.xception_deeplab
import
Xception41_deeplab
,
Xception65_deeplab
from
ppcls.arch.backbone
.model_zoo.resnext101_wsl
import
ResNeXt101_32x8d_wsl
,
ResNeXt101_32x16d_wsl
,
ResNeXt101_32x32d_wsl
,
ResNeXt101_32x48d_wsl
from
ppcls.arch.backbone
.model_zoo.squeezenet
import
SqueezeNet1_0
,
SqueezeNet1_1
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
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
.legendary_models.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.cswin_transformer
import
CSWinTransformer_tiny_224
,
CSWinTransformer_small_224
,
CSWinTransformer_base_224
,
CSWinTransformer_large_224
,
CSWinTransformer_base_384
,
CSWinTransformer_large_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
from
ppcls.arch.backbone
.model_zoo.gvt
import
pcpvt_small
,
pcpvt_base
,
pcpvt_large
,
alt_gvt_small
,
alt_gvt_base
,
alt_gvt_large
from
ppcls.arch.backbone
.model_zoo.levit
import
LeViT_128S
,
LeViT_128
,
LeViT_192
,
LeViT_256
,
LeViT_384
from
ppcls.arch.backbone
.model_zoo.dla
import
DLA34
,
DLA46_c
,
DLA46x_c
,
DLA60
,
DLA60x
,
DLA60x_c
,
DLA102
,
DLA102x
,
DLA102x2
,
DLA169
from
ppcls.arch.backbone
.model_zoo.rednet
import
RedNet26
,
RedNet38
,
RedNet50
,
RedNet101
,
RedNet152
from
ppcls.arch.backbone
.model_zoo.tnt
import
TNT_small
from
ppcls.arch.backbone
.model_zoo.hardnet
import
HarDNet68
,
HarDNet85
,
HarDNet39_ds
,
HarDNet68_ds
from
ppcls.arch.backbone
.model_zoo.cspnet
import
CSPDarkNet53
from
ppcls.arch.backbone
.model_zoo.pvt_v2
import
PVT_V2_B0
,
PVT_V2_B1
,
PVT_V2_B2_Linear
,
PVT_V2_B2
,
PVT_V2_B3
,
PVT_V2_B4
,
PVT_V2_B5
from
ppcls.arch.backbone
.model_zoo.mobilevit
import
MobileViT_XXS
,
MobileViT_XS
,
MobileViT_S
from
ppcls.arch.backbone
.model_zoo.repvgg
import
RepVGG_A0
,
RepVGG_A1
,
RepVGG_A2
,
RepVGG_B0
,
RepVGG_B1
,
RepVGG_B2
,
RepVGG_B1g2
,
RepVGG_B1g4
,
RepVGG_B2g4
,
RepVGG_B3g4
from
ppcls.arch.backbone
.model_zoo.van
import
VAN_tiny
from
ppcls.arch.backbone
.variant_models.resnet_variant
import
ResNet50_last_stage_stride1
from
ppcls.arch.backbone
.variant_models.vgg_variant
import
VGG19Sigmoid
from
ppcls.arch.backbone
.variant_models.pp_lcnet_variant
import
PPLCNet_x2_5_Tanh
from
ppcls.arch.backbone
.model_zoo.adaface_ir_net
import
AdaFace_IR_18
,
AdaFace_IR_34
,
AdaFace_IR_50
,
AdaFace_IR_101
,
AdaFace_IR_152
,
AdaFace_IR_SE_50
,
AdaFace_IR_SE_101
,
AdaFace_IR_SE_152
,
AdaFace_IR_SE_200
from
.model_zoo.resnet_vc
import
ResNet50_vc
from
.model_zoo.resnext
import
ResNeXt50_32x4d
,
ResNeXt50_64x4d
,
ResNeXt101_32x4d
,
ResNeXt101_64x4d
,
ResNeXt152_32x4d
,
ResNeXt152_64x4d
from
.model_zoo.resnext_vd
import
ResNeXt50_vd_32x4d
,
ResNeXt50_vd_64x4d
,
ResNeXt101_vd_32x4d
,
ResNeXt101_vd_64x4d
,
ResNeXt152_vd_32x4d
,
ResNeXt152_vd_64x4d
from
.model_zoo.res2net
import
Res2Net50_26w_4s
,
Res2Net50_14w_8s
from
.model_zoo.res2net_vd
import
Res2Net50_vd_26w_4s
,
Res2Net101_vd_26w_4s
,
Res2Net200_vd_26w_4s
from
.model_zoo.se_resnet_vd
import
SE_ResNet18_vd
,
SE_ResNet34_vd
,
SE_ResNet50_vd
from
.model_zoo.se_resnext_vd
import
SE_ResNeXt50_vd_32x4d
,
SE_ResNeXt50_vd_32x4d
,
SENet154_vd
from
.model_zoo.se_resnext
import
SE_ResNeXt50_32x4d
,
SE_ResNeXt101_32x4d
,
SE_ResNeXt152_64x4d
from
.model_zoo.dpn
import
DPN68
,
DPN92
,
DPN98
,
DPN107
,
DPN131
from
.model_zoo.densenet
import
DenseNet121
,
DenseNet161
,
DenseNet169
,
DenseNet201
,
DenseNet264
from
.model_zoo.efficientnet
import
EfficientNetB0
,
EfficientNetB1
,
EfficientNetB2
,
EfficientNetB3
,
EfficientNetB4
,
EfficientNetB5
,
EfficientNetB6
,
EfficientNetB7
,
EfficientNetB0_small
from
.model_zoo.resnest
import
ResNeSt50_fast_1s1x64d
,
ResNeSt50
,
ResNeSt101
from
.model_zoo.googlenet
import
GoogLeNet
from
.model_zoo.mobilenet_v2
import
MobileNetV2_x0_25
,
MobileNetV2_x0_5
,
MobileNetV2_x0_75
,
MobileNetV2
,
MobileNetV2_x1_5
,
MobileNetV2_x2_0
from
.model_zoo.shufflenet_v2
import
ShuffleNetV2_x0_25
,
ShuffleNetV2_x0_33
,
ShuffleNetV2_x0_5
,
ShuffleNetV2_x1_0
,
ShuffleNetV2_x1_5
,
ShuffleNetV2_x2_0
,
ShuffleNetV2_swish
from
.model_zoo.ghostnet
import
GhostNet_x0_5
,
GhostNet_x1_0
,
GhostNet_x1_3
from
.model_zoo.alexnet
import
AlexNet
from
.model_zoo.inception_v4
import
InceptionV4
from
.model_zoo.xception
import
Xception41
,
Xception65
,
Xception71
from
.model_zoo.xception_deeplab
import
Xception41_deeplab
,
Xception65_deeplab
from
.model_zoo.resnext101_wsl
import
ResNeXt101_32x8d_wsl
,
ResNeXt101_32x16d_wsl
,
ResNeXt101_32x32d_wsl
,
ResNeXt101_32x48d_wsl
from
.model_zoo.squeezenet
import
SqueezeNet1_0
,
SqueezeNet1_1
from
.model_zoo.darknet
import
DarkNet53
from
.model_zoo.regnet
import
RegNetX_200MF
,
RegNetX_4GF
,
RegNetX_32GF
,
RegNetY_200MF
,
RegNetY_4GF
,
RegNetY_32GF
from
.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
from
.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
.legendary_models.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
.model_zoo.cswin_transformer
import
CSWinTransformer_tiny_224
,
CSWinTransformer_small_224
,
CSWinTransformer_base_224
,
CSWinTransformer_large_224
,
CSWinTransformer_base_384
,
CSWinTransformer_large_384
from
.model_zoo.mixnet
import
MixNet_S
,
MixNet_M
,
MixNet_L
from
.model_zoo.rexnet
import
ReXNet_1_0
,
ReXNet_1_3
,
ReXNet_1_5
,
ReXNet_2_0
,
ReXNet_3_0
from
.model_zoo.gvt
import
pcpvt_small
,
pcpvt_base
,
pcpvt_large
,
alt_gvt_small
,
alt_gvt_base
,
alt_gvt_large
from
.model_zoo.levit
import
LeViT_128S
,
LeViT_128
,
LeViT_192
,
LeViT_256
,
LeViT_384
from
.model_zoo.dla
import
DLA34
,
DLA46_c
,
DLA46x_c
,
DLA60
,
DLA60x
,
DLA60x_c
,
DLA102
,
DLA102x
,
DLA102x2
,
DLA169
from
.model_zoo.rednet
import
RedNet26
,
RedNet38
,
RedNet50
,
RedNet101
,
RedNet152
from
.model_zoo.tnt
import
TNT_small
from
.model_zoo.hardnet
import
HarDNet68
,
HarDNet85
,
HarDNet39_ds
,
HarDNet68_ds
from
.model_zoo.cspnet
import
CSPDarkNet53
from
.model_zoo.pvt_v2
import
PVT_V2_B0
,
PVT_V2_B1
,
PVT_V2_B2_Linear
,
PVT_V2_B2
,
PVT_V2_B3
,
PVT_V2_B4
,
PVT_V2_B5
from
.model_zoo.mobilevit
import
MobileViT_XXS
,
MobileViT_XS
,
MobileViT_S
from
.model_zoo.repvgg
import
RepVGG_A0
,
RepVGG_A1
,
RepVGG_A2
,
RepVGG_B0
,
RepVGG_B1
,
RepVGG_B2
,
RepVGG_B1g2
,
RepVGG_B1g4
,
RepVGG_B2g4
,
RepVGG_B3g4
from
.model_zoo.van
import
VAN_tiny
from
.variant_models.resnet_variant
import
ResNet50_last_stage_stride1
from
.variant_models.vgg_variant
import
VGG19Sigmoid
from
.variant_models.pp_lcnet_variant
import
PPLCNet_x2_5_Tanh
from
.model_zoo.adaface_ir_net
import
AdaFace_IR_18
,
AdaFace_IR_34
,
AdaFace_IR_50
,
AdaFace_IR_101
,
AdaFace_IR_152
,
AdaFace_IR_SE_50
,
AdaFace_IR_SE_101
,
AdaFace_IR_SE_152
,
AdaFace_IR_SE_200
# help whl get all the models' api (class type) and components' api (func type)
...
...
ppcls/arch/backbone/base/theseus_layer.py
浏览文件 @
6cb17cfe
...
...
@@ -15,7 +15,7 @@
from
typing
import
Tuple
,
List
,
Dict
,
Union
,
Callable
,
Any
from
paddle
import
nn
from
ppcls
.utils
import
logger
from
...
.utils
import
logger
class
Identity
(
nn
.
Layer
):
...
...
ppcls/arch/backbone/legendary_models/esnet.py
浏览文件 @
6cb17cfe
...
...
@@ -22,8 +22,8 @@ from paddle.nn import AdaptiveAvgPool2D, MaxPool2D
from
paddle.nn.initializer
import
KaimingNormal
from
paddle.regularizer
import
L2Decay
from
ppcls.arch.backbone
.base.theseus_layer
import
TheseusLayer
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
TheseusLayer
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ESNet_x0_25"
:
...
...
ppcls/arch/backbone/legendary_models/hrnet.py
浏览文件 @
6cb17cfe
...
...
@@ -25,8 +25,8 @@ from paddle import ParamAttr
from
paddle.nn.functional
import
upsample
from
paddle.nn.initializer
import
Uniform
from
ppcls.arch.backbone
.base.theseus_layer
import
TheseusLayer
,
Identity
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
TheseusLayer
,
Identity
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"HRNet_W18_C"
:
...
...
ppcls/arch/backbone/legendary_models/inception_v3.py
浏览文件 @
6cb17cfe
...
...
@@ -23,8 +23,8 @@ from paddle.nn import Conv2D, BatchNorm, Linear, Dropout
from
paddle.nn
import
AdaptiveAvgPool2D
,
MaxPool2D
,
AvgPool2D
from
paddle.nn.initializer
import
Uniform
from
ppcls.arch.backbone
.base.theseus_layer
import
TheseusLayer
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
TheseusLayer
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"InceptionV3"
:
...
...
ppcls/arch/backbone/legendary_models/mobilenet_v1.py
浏览文件 @
6cb17cfe
...
...
@@ -22,8 +22,8 @@ from paddle.nn import Conv2D, BatchNorm, Linear, ReLU, Flatten
from
paddle.nn
import
AdaptiveAvgPool2D
from
paddle.nn.initializer
import
KaimingNormal
from
ppcls.arch.backbone
.base.theseus_layer
import
TheseusLayer
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
TheseusLayer
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"MobileNetV1_x0_25"
:
...
...
ppcls/arch/backbone/legendary_models/mobilenet_v3.py
浏览文件 @
6cb17cfe
...
...
@@ -21,8 +21,9 @@ import paddle.nn as nn
from
paddle
import
ParamAttr
from
paddle.nn
import
AdaptiveAvgPool2D
,
BatchNorm
,
Conv2D
,
Dropout
,
Linear
from
paddle.regularizer
import
L2Decay
from
ppcls.arch.backbone.base.theseus_layer
import
TheseusLayer
from
ppcls.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
..base.theseus_layer
import
TheseusLayer
from
....utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"MobileNetV3_small_x0_35"
:
...
...
ppcls/arch/backbone/legendary_models/pp_hgnet.py
浏览文件 @
6cb17cfe
...
...
@@ -20,8 +20,8 @@ from paddle.nn import Conv2D, BatchNorm2D, ReLU, AdaptiveAvgPool2D, MaxPool2D
from
paddle.regularizer
import
L2Decay
from
paddle
import
ParamAttr
from
ppcls.arch.backbone
.base.theseus_layer
import
TheseusLayer
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
TheseusLayer
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"PPHGNet_tiny"
:
...
...
@@ -199,6 +199,7 @@ class PPHGNet(TheseusLayer):
Returns:
model: nn.Layer. Specific PPHGNet model depends on args.
"""
def
__init__
(
self
,
stem_channels
,
stage_config
,
...
...
@@ -230,7 +231,7 @@ class PPHGNet(TheseusLayer):
k
]
self
.
stages
.
append
(
HG_Stage
(
in_channels
,
mid_channels
,
out_channels
,
block_num
,
layer_num
,
downsample
))
layer_num
,
downsample
))
self
.
avg_pool
=
AdaptiveAvgPool2D
(
1
)
if
self
.
use_last_conv
:
...
...
ppcls/arch/backbone/legendary_models/pp_lcnet.py
浏览文件 @
6cb17cfe
...
...
@@ -20,8 +20,9 @@ from paddle import ParamAttr
from
paddle.nn
import
AdaptiveAvgPool2D
,
BatchNorm2D
,
Conv2D
,
Dropout
,
Linear
from
paddle.regularizer
import
L2Decay
from
paddle.nn.initializer
import
KaimingNormal
from
ppcls.arch.backbone.base.theseus_layer
import
TheseusLayer
from
ppcls.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
..base.theseus_layer
import
TheseusLayer
from
....utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"PPLCNet_x0_25"
:
...
...
@@ -229,64 +230,59 @@ class PPLCNet(TheseusLayer):
stride
=
stride_list
[
0
],
lr_mult
=
self
.
lr_mult_list
[
0
])
self
.
blocks2
=
nn
.
Sequential
(
*
[
self
.
blocks2
=
nn
.
Sequential
(
*
[
DepthwiseSeparable
(
num_channels
=
make_divisible
(
in_c
*
scale
),
num_filters
=
make_divisible
(
out_c
*
scale
),
dw_size
=
k
,
stride
=
s
,
use_se
=
se
,
lr_mult
=
self
.
lr_mult_list
[
1
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks2"
])
lr_mult
=
self
.
lr_mult_list
[
1
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks2"
])
])
self
.
blocks3
=
nn
.
Sequential
(
*
[
self
.
blocks3
=
nn
.
Sequential
(
*
[
DepthwiseSeparable
(
num_channels
=
make_divisible
(
in_c
*
scale
),
num_filters
=
make_divisible
(
out_c
*
scale
),
dw_size
=
k
,
stride
=
s
,
use_se
=
se
,
lr_mult
=
self
.
lr_mult_list
[
2
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks3"
])
lr_mult
=
self
.
lr_mult_list
[
2
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks3"
])
])
self
.
blocks4
=
nn
.
Sequential
(
*
[
self
.
blocks4
=
nn
.
Sequential
(
*
[
DepthwiseSeparable
(
num_channels
=
make_divisible
(
in_c
*
scale
),
num_filters
=
make_divisible
(
out_c
*
scale
),
dw_size
=
k
,
stride
=
s
,
use_se
=
se
,
lr_mult
=
self
.
lr_mult_list
[
3
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks4"
])
lr_mult
=
self
.
lr_mult_list
[
3
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks4"
])
])
self
.
blocks5
=
nn
.
Sequential
(
*
[
self
.
blocks5
=
nn
.
Sequential
(
*
[
DepthwiseSeparable
(
num_channels
=
make_divisible
(
in_c
*
scale
),
num_filters
=
make_divisible
(
out_c
*
scale
),
dw_size
=
k
,
stride
=
s
,
use_se
=
se
,
lr_mult
=
self
.
lr_mult_list
[
4
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks5"
])
lr_mult
=
self
.
lr_mult_list
[
4
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks5"
])
])
self
.
blocks6
=
nn
.
Sequential
(
*
[
self
.
blocks6
=
nn
.
Sequential
(
*
[
DepthwiseSeparable
(
num_channels
=
make_divisible
(
in_c
*
scale
),
num_filters
=
make_divisible
(
out_c
*
scale
),
dw_size
=
k
,
stride
=
s
,
use_se
=
se
,
lr_mult
=
self
.
lr_mult_list
[
5
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks6"
])
lr_mult
=
self
.
lr_mult_list
[
5
])
for
i
,
(
k
,
in_c
,
out_c
,
s
,
se
)
in
enumerate
(
self
.
net_config
[
"blocks6"
])
])
self
.
avg_pool
=
AdaptiveAvgPool2D
(
1
)
...
...
ppcls/arch/backbone/legendary_models/pp_lcnet_v2.py
浏览文件 @
6cb17cfe
...
...
@@ -21,8 +21,9 @@ from paddle import ParamAttr
from
paddle.nn
import
AdaptiveAvgPool2D
,
BatchNorm2D
,
Conv2D
,
Dropout
,
Linear
from
paddle.regularizer
import
L2Decay
from
paddle.nn.initializer
import
KaimingNormal
from
ppcls.arch.backbone.base.theseus_layer
import
TheseusLayer
from
ppcls.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
..base.theseus_layer
import
TheseusLayer
from
....utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"PPLCNetV2_base"
:
...
...
ppcls/arch/backbone/legendary_models/resnet.py
浏览文件 @
6cb17cfe
...
...
@@ -26,9 +26,9 @@ from paddle.nn.initializer import Uniform
from
paddle.regularizer
import
L2Decay
import
math
from
ppcls
.utils
import
logger
from
ppcls.arch.backbone
.base.theseus_layer
import
TheseusLayer
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils
import
logger
from
.
.base.theseus_layer
import
TheseusLayer
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ResNet18"
:
...
...
@@ -328,7 +328,7 @@ class ResNet(TheseusLayer):
[
32
,
32
,
3
,
1
],
[
32
,
64
,
3
,
1
]]
}
self
.
stem
=
nn
.
Sequential
(
*
[
self
.
stem
=
nn
.
Sequential
(
*
[
ConvBNLayer
(
num_channels
=
in_c
,
num_filters
=
out_c
,
...
...
ppcls/arch/backbone/legendary_models/swin_transformer.py
浏览文件 @
6cb17cfe
...
...
@@ -21,9 +21,9 @@ import paddle.nn as nn
import
paddle.nn.functional
as
F
from
paddle.nn.initializer
import
TruncatedNormal
,
Constant
from
ppcls.arch.backbone.base.theseus_layer
import
TheseusLayer
from
ppcls.arch.backbone.model_zoo.vision_transformer
import
trunc_normal_
,
zeros_
,
ones_
,
to_2tuple
,
DropPath
,
Identity
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
..model_zoo.vision_transformer
import
trunc_normal_
,
zeros_
,
ones_
,
to_2tuple
,
DropPath
,
Identity
from
..base.theseus_layer
import
TheseusLayer
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"SwinTransformer_tiny_patch4_window7_224"
:
...
...
ppcls/arch/backbone/legendary_models/vgg.py
浏览文件 @
6cb17cfe
...
...
@@ -20,8 +20,8 @@ import paddle.nn as nn
from
paddle.nn
import
Conv2D
,
BatchNorm
,
Linear
,
Dropout
from
paddle.nn
import
MaxPool2D
from
ppcls.arch.backbone
.base.theseus_layer
import
TheseusLayer
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
TheseusLayer
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"VGG11"
:
...
...
ppcls/arch/backbone/model_zoo/alexnet.py
浏览文件 @
6cb17cfe
...
...
@@ -23,7 +23,7 @@ from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
from
paddle.nn.initializer
import
Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"AlexNet"
:
...
...
ppcls/arch/backbone/model_zoo/convnext.py
0 → 100644
浏览文件 @
6cb17cfe
# copyright (c) 2022 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.
#
# Code was heavily based on https://github.com/facebookresearch/ConvNeXt
import
paddle
import
paddle.nn
as
nn
from
paddle.nn.initializer
import
TruncatedNormal
,
Constant
from
....utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ConvNeXt_tiny"
:
""
,
# TODO
}
__all__
=
list
(
MODEL_URLS
.
keys
())
trunc_normal_
=
TruncatedNormal
(
std
=
.
02
)
zeros_
=
Constant
(
value
=
0.
)
ones_
=
Constant
(
value
=
1.
)
def
drop_path
(
x
,
drop_prob
=
0.
,
training
=
False
):
"""Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).
the original name is misleading as 'Drop Connect' is a different form of dropout in a separate paper...
See discussion: https://github.com/tensorflow/tpu/issues/494#issuecomment-532968956 ...
"""
if
drop_prob
==
0.
or
not
training
:
return
x
keep_prob
=
paddle
.
to_tensor
(
1
-
drop_prob
)
shape
=
(
paddle
.
shape
(
x
)[
0
],
)
+
(
1
,
)
*
(
x
.
ndim
-
1
)
random_tensor
=
keep_prob
+
paddle
.
rand
(
shape
,
dtype
=
x
.
dtype
)
random_tensor
=
paddle
.
floor
(
random_tensor
)
# binarize
output
=
x
.
divide
(
keep_prob
)
*
random_tensor
return
output
class
DropPath
(
nn
.
Layer
):
"""Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).
"""
def
__init__
(
self
,
drop_prob
=
None
):
super
(
DropPath
,
self
).
__init__
()
self
.
drop_prob
=
drop_prob
def
forward
(
self
,
x
):
return
drop_path
(
x
,
self
.
drop_prob
,
self
.
training
)
class
ChannelsFirstLayerNorm
(
nn
.
Layer
):
r
""" LayerNorm that supports two data formats: channels_last (default) or channels_first.
The ordering of the dimensions in the inputs. channels_last corresponds to inputs with
shape (batch_size, height, width, channels) while channels_first corresponds to inputs
with shape (batch_size, channels, height, width).
"""
def
__init__
(
self
,
normalized_shape
,
epsilon
=
1e-5
):
super
().
__init__
()
self
.
weight
=
self
.
create_parameter
(
shape
=
[
normalized_shape
],
default_initializer
=
ones_
)
self
.
bias
=
self
.
create_parameter
(
shape
=
[
normalized_shape
],
default_initializer
=
zeros_
)
self
.
epsilon
=
epsilon
self
.
normalized_shape
=
[
normalized_shape
]
def
forward
(
self
,
x
):
u
=
x
.
mean
(
1
,
keepdim
=
True
)
s
=
(
x
-
u
).
pow
(
2
).
mean
(
1
,
keepdim
=
True
)
x
=
(
x
-
u
)
/
paddle
.
sqrt
(
s
+
self
.
epsilon
)
x
=
self
.
weight
[:,
None
,
None
]
*
x
+
self
.
bias
[:,
None
,
None
]
return
x
class
Block
(
nn
.
Layer
):
r
""" ConvNeXt Block. There are two equivalent implementations:
(1) DwConv -> LayerNorm (channels_first) -> 1x1 Conv -> GELU -> 1x1 Conv; all in (N, C, H, W)
(2) DwConv -> Permute to (N, H, W, C); LayerNorm (channels_last) -> Linear -> GELU -> Linear; Permute back
We use (2) as we find it slightly faster in PyTorch
Args:
dim (int): Number of input channels.
drop_path (float): Stochastic depth rate. Default: 0.0
layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
"""
def
__init__
(
self
,
dim
,
drop_path
=
0.
,
layer_scale_init_value
=
1e-6
):
super
().
__init__
()
self
.
dwconv
=
nn
.
Conv2D
(
dim
,
dim
,
7
,
padding
=
3
,
groups
=
dim
)
# depthwise conv
self
.
norm
=
nn
.
LayerNorm
(
dim
,
epsilon
=
1e-6
)
# pointwise/1x1 convs, implemented with linear layers
self
.
pwconv1
=
nn
.
Linear
(
dim
,
4
*
dim
)
self
.
act
=
nn
.
GELU
()
self
.
pwconv2
=
nn
.
Linear
(
4
*
dim
,
dim
)
if
layer_scale_init_value
>
0
:
self
.
gamma
=
self
.
create_parameter
(
shape
=
[
dim
],
default_initializer
=
Constant
(
value
=
layer_scale_init_value
))
else
:
self
.
gamma
=
None
self
.
drop_path
=
DropPath
(
drop_path
)
if
drop_path
>
0.
else
nn
.
Identity
()
def
forward
(
self
,
x
):
input
=
x
x
=
self
.
dwconv
(
x
)
x
=
x
.
transpose
([
0
,
2
,
3
,
1
])
# (N, C, H, W) -> (N, H, W, C)
x
=
self
.
norm
(
x
)
x
=
self
.
pwconv1
(
x
)
x
=
self
.
act
(
x
)
x
=
self
.
pwconv2
(
x
)
if
self
.
gamma
is
not
None
:
x
=
self
.
gamma
*
x
x
=
x
.
transpose
([
0
,
3
,
1
,
2
])
# (N, H, W, C) -> (N, C, H, W)
x
=
input
+
self
.
drop_path
(
x
)
return
x
class
ConvNeXt
(
nn
.
Layer
):
r
""" ConvNeXt
A PaddlePaddle impl of : `A ConvNet for the 2020s` -
https://arxiv.org/pdf/2201.03545.pdf
Args:
in_chans (int): Number of input image channels. Default: 3
class_num (int): Number of classes for classification head. Default: 1000
depths (tuple(int)): Number of blocks at each stage. Default: [3, 3, 9, 3]
dims (int): Feature dimension at each stage. Default: [96, 192, 384, 768]
drop_path_rate (float): Stochastic depth rate. Default: 0.
layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
head_init_scale (float): Init scaling value for classifier weights and biases. Default: 1.
"""
def
__init__
(
self
,
in_chans
=
3
,
class_num
=
1000
,
depths
=
[
3
,
3
,
9
,
3
],
dims
=
[
96
,
192
,
384
,
768
],
drop_path_rate
=
0.
,
layer_scale_init_value
=
1e-6
,
head_init_scale
=
1.
):
super
().
__init__
()
# stem and 3 intermediate downsampling conv layers
self
.
downsample_layers
=
nn
.
LayerList
()
stem
=
nn
.
Sequential
(
nn
.
Conv2D
(
in_chans
,
dims
[
0
],
4
,
stride
=
4
),
ChannelsFirstLayerNorm
(
dims
[
0
],
epsilon
=
1e-6
))
self
.
downsample_layers
.
append
(
stem
)
for
i
in
range
(
3
):
downsample_layer
=
nn
.
Sequential
(
ChannelsFirstLayerNorm
(
dims
[
i
],
epsilon
=
1e-6
),
nn
.
Conv2D
(
dims
[
i
],
dims
[
i
+
1
],
2
,
stride
=
2
),
)
self
.
downsample_layers
.
append
(
downsample_layer
)
# 4 feature resolution stages, each consisting of multiple residual blocks
self
.
stages
=
nn
.
LayerList
()
dp_rates
=
[
x
.
item
()
for
x
in
paddle
.
linspace
(
0
,
drop_path_rate
,
sum
(
depths
))
]
cur
=
0
for
i
in
range
(
4
):
stage
=
nn
.
Sequential
(
*
[
Block
(
dim
=
dims
[
i
],
drop_path
=
dp_rates
[
cur
+
j
],
layer_scale_init_value
=
layer_scale_init_value
)
for
j
in
range
(
depths
[
i
])
])
self
.
stages
.
append
(
stage
)
cur
+=
depths
[
i
]
self
.
norm
=
nn
.
LayerNorm
(
dims
[
-
1
],
epsilon
=
1e-6
)
# final norm layer
self
.
head
=
nn
.
Linear
(
dims
[
-
1
],
class_num
)
self
.
apply
(
self
.
_init_weights
)
self
.
head
.
weight
.
set_value
(
self
.
head
.
weight
*
head_init_scale
)
self
.
head
.
bias
.
set_value
(
self
.
head
.
bias
*
head_init_scale
)
def
_init_weights
(
self
,
m
):
if
isinstance
(
m
,
(
nn
.
Conv2D
,
nn
.
Linear
)):
trunc_normal_
(
m
.
weight
)
if
m
.
bias
is
not
None
:
zeros_
(
m
.
bias
)
def
forward_features
(
self
,
x
):
for
i
in
range
(
4
):
x
=
self
.
downsample_layers
[
i
](
x
)
x
=
self
.
stages
[
i
](
x
)
# global average pooling, (N, C, H, W) -> (N, C)
return
self
.
norm
(
x
.
mean
([
-
2
,
-
1
]))
def
forward
(
self
,
x
):
x
=
self
.
forward_features
(
x
)
x
=
self
.
head
(
x
)
return
x
def
_load_pretrained
(
pretrained
,
model
,
model_url
,
use_ssld
=
False
):
if
pretrained
is
False
:
pass
elif
pretrained
is
True
:
load_dygraph_pretrain_from_url
(
model
,
model_url
,
use_ssld
=
use_ssld
)
elif
isinstance
(
pretrained
,
str
):
load_dygraph_pretrain
(
model
,
pretrained
)
else
:
raise
RuntimeError
(
"pretrained type is not available. Please use `string` or `boolean` type."
)
def
ConvNeXt_tiny
(
pretrained
=
False
,
use_ssld
=
False
,
**
kwargs
):
model
=
ConvNeXt
(
depths
=
[
3
,
3
,
9
,
3
],
dims
=
[
96
,
192
,
384
,
768
],
**
kwargs
)
_load_pretrained
(
pretrained
,
model
,
MODEL_URLS
[
"ConvNeXt_tiny"
],
use_ssld
=
use_ssld
)
return
model
ppcls/arch/backbone/model_zoo/cspnet.py
浏览文件 @
6cb17cfe
...
...
@@ -20,7 +20,7 @@ import paddle.nn as nn
import
paddle.nn.functional
as
F
from
paddle
import
ParamAttr
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"CSPDarkNet53"
:
...
...
ppcls/arch/backbone/model_zoo/cswin_transformer.py
浏览文件 @
6cb17cfe
...
...
@@ -21,7 +21,7 @@ import paddle
import
paddle.nn
as
nn
from
.vision_transformer
import
trunc_normal_
,
zeros_
,
ones_
,
to_2tuple
,
DropPath
,
Identity
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"CSWinTransformer_tiny_224"
:
...
...
ppcls/arch/backbone/model_zoo/darknet.py
浏览文件 @
6cb17cfe
...
...
@@ -23,7 +23,7 @@ from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
from
paddle.nn.initializer
import
Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"DarkNet53"
:
...
...
ppcls/arch/backbone/model_zoo/densenet.py
浏览文件 @
6cb17cfe
...
...
@@ -28,7 +28,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"DenseNet121"
:
...
...
ppcls/arch/backbone/model_zoo/distilled_vision_transformer.py
浏览文件 @
6cb17cfe
...
...
@@ -19,7 +19,7 @@ import paddle
import
paddle.nn
as
nn
from
.vision_transformer
import
VisionTransformer
,
Identity
,
trunc_normal_
,
zeros_
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"DeiT_tiny_patch16_224"
:
...
...
ppcls/arch/backbone/model_zoo/dla.py
浏览文件 @
6cb17cfe
...
...
@@ -23,8 +23,8 @@ import paddle.nn.functional as F
from
paddle.nn.initializer
import
Normal
,
Constant
from
ppcls.arch.backbone
.base.theseus_layer
import
Identity
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
Identity
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"DLA34"
:
...
...
ppcls/arch/backbone/model_zoo/dpn.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"DPN68"
:
...
...
ppcls/arch/backbone/model_zoo/efficientnet.py
浏览文件 @
6cb17cfe
...
...
@@ -26,7 +26,7 @@ import collections
import
re
import
copy
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"EfficientNetB0_small"
:
...
...
ppcls/arch/backbone/model_zoo/ghostnet.py
浏览文件 @
6cb17cfe
...
...
@@ -24,7 +24,7 @@ from paddle.nn import Conv2D, BatchNorm, AdaptiveAvgPool2D, Linear
from
paddle.regularizer
import
L2Decay
from
paddle.nn.initializer
import
Uniform
,
KaimingNormal
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"GhostNet_x0_5"
:
...
...
ppcls/arch/backbone/model_zoo/googlenet.py
浏览文件 @
6cb17cfe
...
...
@@ -24,7 +24,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"GoogLeNet"
:
...
...
ppcls/arch/backbone/model_zoo/gvt.py
浏览文件 @
6cb17cfe
...
...
@@ -25,7 +25,7 @@ from paddle.regularizer import L2Decay
from
.vision_transformer
import
trunc_normal_
,
normal_
,
zeros_
,
ones_
,
to_2tuple
,
DropPath
,
Identity
,
Mlp
from
.vision_transformer
import
Block
as
ViTBlock
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"pcpvt_small"
:
...
...
ppcls/arch/backbone/model_zoo/hardnet.py
浏览文件 @
6cb17cfe
...
...
@@ -18,7 +18,7 @@
import
paddle
import
paddle.nn
as
nn
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
'HarDNet39_ds'
:
...
...
ppcls/arch/backbone/model_zoo/inception_v4.py
浏览文件 @
6cb17cfe
...
...
@@ -23,7 +23,7 @@ from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
from
paddle.nn.initializer
import
Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"InceptionV4"
:
...
...
ppcls/arch/backbone/model_zoo/levit.py
浏览文件 @
6cb17cfe
...
...
@@ -27,7 +27,7 @@ from paddle.regularizer import L2Decay
from
.vision_transformer
import
trunc_normal_
,
zeros_
,
ones_
,
Identity
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"LeViT_128S"
:
...
...
ppcls/arch/backbone/model_zoo/mixnet.py
浏览文件 @
6cb17cfe
...
...
@@ -20,7 +20,7 @@ from functools import reduce
import
paddle
import
paddle.nn
as
nn
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"MixNet_S"
:
...
...
ppcls/arch/backbone/model_zoo/mobilenet_v2.py
浏览文件 @
6cb17cfe
...
...
@@ -28,7 +28,7 @@ from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"MobileNetV2_x0_25"
:
...
...
ppcls/arch/backbone/model_zoo/mobilevit.py
浏览文件 @
6cb17cfe
...
...
@@ -23,7 +23,7 @@ import paddle.nn.functional as F
from
paddle.nn.initializer
import
KaimingUniform
,
TruncatedNormal
,
Constant
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"MobileViT_XXS"
:
...
...
ppcls/arch/backbone/model_zoo/peleenet.py
0 → 100644
浏览文件 @
6cb17cfe
# copyright (c) 2022 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.
#
# Code was heavily based on https://github.com/Robert-JunWang/PeleeNet
# reference: https://arxiv.org/pdf/1804.06882.pdf
import
math
import
paddle
import
paddle.nn
as
nn
import
paddle.nn.functional
as
F
from
paddle.nn.initializer
import
Normal
,
Constant
from
....utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"PeleeNet"
:
""
# TODO
}
__all__
=
MODEL_URLS
.
keys
()
normal_
=
lambda
x
,
mean
=
0
,
std
=
1
:
Normal
(
mean
,
std
)(
x
)
constant_
=
lambda
x
,
value
=
0
:
Constant
(
value
)(
x
)
zeros_
=
Constant
(
value
=
0.
)
ones_
=
Constant
(
value
=
1.
)
class
_DenseLayer
(
nn
.
Layer
):
def
__init__
(
self
,
num_input_features
,
growth_rate
,
bottleneck_width
,
drop_rate
):
super
(
_DenseLayer
,
self
).
__init__
()
growth_rate
=
int
(
growth_rate
/
2
)
inter_channel
=
int
(
growth_rate
*
bottleneck_width
/
4
)
*
4
if
inter_channel
>
num_input_features
/
2
:
inter_channel
=
int
(
num_input_features
/
8
)
*
4
print
(
'adjust inter_channel to '
,
inter_channel
)
self
.
branch1a
=
BasicConv2D
(
num_input_features
,
inter_channel
,
kernel_size
=
1
)
self
.
branch1b
=
BasicConv2D
(
inter_channel
,
growth_rate
,
kernel_size
=
3
,
padding
=
1
)
self
.
branch2a
=
BasicConv2D
(
num_input_features
,
inter_channel
,
kernel_size
=
1
)
self
.
branch2b
=
BasicConv2D
(
inter_channel
,
growth_rate
,
kernel_size
=
3
,
padding
=
1
)
self
.
branch2c
=
BasicConv2D
(
growth_rate
,
growth_rate
,
kernel_size
=
3
,
padding
=
1
)
def
forward
(
self
,
x
):
branch1
=
self
.
branch1a
(
x
)
branch1
=
self
.
branch1b
(
branch1
)
branch2
=
self
.
branch2a
(
x
)
branch2
=
self
.
branch2b
(
branch2
)
branch2
=
self
.
branch2c
(
branch2
)
return
paddle
.
concat
([
x
,
branch1
,
branch2
],
1
)
class
_DenseBlock
(
nn
.
Sequential
):
def
__init__
(
self
,
num_layers
,
num_input_features
,
bn_size
,
growth_rate
,
drop_rate
):
super
(
_DenseBlock
,
self
).
__init__
()
for
i
in
range
(
num_layers
):
layer
=
_DenseLayer
(
num_input_features
+
i
*
growth_rate
,
growth_rate
,
bn_size
,
drop_rate
)
setattr
(
self
,
'denselayer%d'
%
(
i
+
1
),
layer
)
class
_StemBlock
(
nn
.
Layer
):
def
__init__
(
self
,
num_input_channels
,
num_init_features
):
super
(
_StemBlock
,
self
).
__init__
()
num_stem_features
=
int
(
num_init_features
/
2
)
self
.
stem1
=
BasicConv2D
(
num_input_channels
,
num_init_features
,
kernel_size
=
3
,
stride
=
2
,
padding
=
1
)
self
.
stem2a
=
BasicConv2D
(
num_init_features
,
num_stem_features
,
kernel_size
=
1
,
stride
=
1
,
padding
=
0
)
self
.
stem2b
=
BasicConv2D
(
num_stem_features
,
num_init_features
,
kernel_size
=
3
,
stride
=
2
,
padding
=
1
)
self
.
stem3
=
BasicConv2D
(
2
*
num_init_features
,
num_init_features
,
kernel_size
=
1
,
stride
=
1
,
padding
=
0
)
self
.
pool
=
nn
.
MaxPool2D
(
kernel_size
=
2
,
stride
=
2
)
def
forward
(
self
,
x
):
out
=
self
.
stem1
(
x
)
branch2
=
self
.
stem2a
(
out
)
branch2
=
self
.
stem2b
(
branch2
)
branch1
=
self
.
pool
(
out
)
out
=
paddle
.
concat
([
branch1
,
branch2
],
1
)
out
=
self
.
stem3
(
out
)
return
out
class
BasicConv2D
(
nn
.
Layer
):
def
__init__
(
self
,
in_channels
,
out_channels
,
activation
=
True
,
**
kwargs
):
super
(
BasicConv2D
,
self
).
__init__
()
self
.
conv
=
nn
.
Conv2D
(
in_channels
,
out_channels
,
bias_attr
=
False
,
**
kwargs
)
self
.
norm
=
nn
.
BatchNorm2D
(
out_channels
)
self
.
activation
=
activation
def
forward
(
self
,
x
):
x
=
self
.
conv
(
x
)
x
=
self
.
norm
(
x
)
if
self
.
activation
:
return
F
.
relu
(
x
)
else
:
return
x
class
PeleeNetDY
(
nn
.
Layer
):
r
"""PeleeNet model class, based on
`"Densely Connected Convolutional Networks" <https://arxiv.org/pdf/1608.06993.pdf> and
"Pelee: A Real-Time Object Detection System on Mobile Devices" <https://arxiv.org/pdf/1804.06882.pdf>`
Args:
growth_rate (int or list of 4 ints) - how many filters to add each layer (`k` in paper)
block_config (list of 4 ints) - how many layers in each pooling block
num_init_features (int) - the number of filters to learn in the first convolution layer
bottleneck_width (int or list of 4 ints) - multiplicative factor for number of bottle neck layers
(i.e. bn_size * k features in the bottleneck layer)
drop_rate (float) - dropout rate after each dense layer
class_num (int) - number of classification classes
"""
def
__init__
(
self
,
growth_rate
=
32
,
block_config
=
[
3
,
4
,
8
,
6
],
num_init_features
=
32
,
bottleneck_width
=
[
1
,
2
,
4
,
4
],
drop_rate
=
0.05
,
class_num
=
1000
):
super
(
PeleeNetDY
,
self
).
__init__
()
self
.
features
=
nn
.
Sequential
(
*
[(
'stemblock'
,
_StemBlock
(
3
,
num_init_features
)),
])
if
type
(
growth_rate
)
is
list
:
growth_rates
=
growth_rate
assert
len
(
growth_rates
)
==
4
,
\
'The growth rate must be the list and the size must be 4'
else
:
growth_rates
=
[
growth_rate
]
*
4
if
type
(
bottleneck_width
)
is
list
:
bottleneck_widths
=
bottleneck_width
assert
len
(
bottleneck_widths
)
==
4
,
\
'The bottleneck width must be the list and the size must be 4'
else
:
bottleneck_widths
=
[
bottleneck_width
]
*
4
# Each denseblock
num_features
=
num_init_features
for
i
,
num_layers
in
enumerate
(
block_config
):
block
=
_DenseBlock
(
num_layers
=
num_layers
,
num_input_features
=
num_features
,
bn_size
=
bottleneck_widths
[
i
],
growth_rate
=
growth_rates
[
i
],
drop_rate
=
drop_rate
)
setattr
(
self
.
features
,
'denseblock%d'
%
(
i
+
1
),
block
)
num_features
=
num_features
+
num_layers
*
growth_rates
[
i
]
setattr
(
self
.
features
,
'transition%d'
%
(
i
+
1
),
BasicConv2D
(
num_features
,
num_features
,
kernel_size
=
1
,
stride
=
1
,
padding
=
0
))
if
i
!=
len
(
block_config
)
-
1
:
setattr
(
self
.
features
,
'transition%d_pool'
%
(
i
+
1
),
nn
.
AvgPool2D
(
kernel_size
=
2
,
stride
=
2
))
num_features
=
num_features
# Linear layer
self
.
classifier
=
nn
.
Linear
(
num_features
,
class_num
)
self
.
drop_rate
=
drop_rate
self
.
apply
(
self
.
_initialize_weights
)
def
forward
(
self
,
x
):
features
=
self
.
features
(
x
)
out
=
F
.
avg_pool2d
(
features
,
kernel_size
=
features
.
shape
[
2
:
4
]).
flatten
(
1
)
if
self
.
drop_rate
>
0
:
out
=
F
.
dropout
(
out
,
p
=
self
.
drop_rate
,
training
=
self
.
training
)
out
=
self
.
classifier
(
out
)
return
out
def
_initialize_weights
(
self
,
m
):
if
isinstance
(
m
,
nn
.
Conv2D
):
n
=
m
.
_kernel_size
[
0
]
*
m
.
_kernel_size
[
1
]
*
m
.
_out_channels
normal_
(
m
.
weight
,
std
=
math
.
sqrt
(
2.
/
n
))
if
m
.
bias
is
not
None
:
zeros_
(
m
.
bias
)
elif
isinstance
(
m
,
nn
.
BatchNorm2D
):
ones_
(
m
.
weight
)
zeros_
(
m
.
bias
)
elif
isinstance
(
m
,
nn
.
Linear
):
normal_
(
m
.
weight
,
std
=
0.01
)
zeros_
(
m
.
bias
)
def
_load_pretrained
(
pretrained
,
model
,
model_url
,
use_ssld
):
if
pretrained
is
False
:
pass
elif
pretrained
is
True
:
load_dygraph_pretrain_from_url
(
model
,
model_url
,
use_ssld
=
use_ssld
)
elif
isinstance
(
pretrained
,
str
):
load_dygraph_pretrain
(
model
,
pretrained
)
else
:
raise
RuntimeError
(
"pretrained type is not available. Please use `string` or `boolean` type."
)
def
PeleeNet
(
pretrained
=
False
,
use_ssld
=
False
,
**
kwargs
):
model
=
PeleeNetDY
(
**
kwargs
)
_load_pretrained
(
pretrained
,
model
,
MODEL_URLS
[
"PeleeNet"
],
use_ssld
)
return
model
ppcls/arch/backbone/model_zoo/pvt_v2.py
浏览文件 @
6cb17cfe
...
...
@@ -24,7 +24,7 @@ from paddle.nn.initializer import TruncatedNormal, Constant
from
.vision_transformer
import
trunc_normal_
,
zeros_
,
ones_
,
to_2tuple
,
DropPath
,
Identity
,
drop_path
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"PVT_V2_B0"
:
...
...
ppcls/arch/backbone/model_zoo/rednet.py
浏览文件 @
6cb17cfe
...
...
@@ -20,7 +20,7 @@ import paddle.nn as nn
from
paddle.vision.models
import
resnet
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"RedNet26"
:
...
...
ppcls/arch/backbone/model_zoo/regnet.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
from
paddle.nn.initializer
import
Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"RegNetX_200MF"
:
...
...
ppcls/arch/backbone/model_zoo/repvgg.py
浏览文件 @
6cb17cfe
...
...
@@ -19,7 +19,7 @@ import paddle.nn as nn
import
paddle
import
numpy
as
np
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"RepVGG_A0"
:
...
...
ppcls/arch/backbone/model_zoo/res2net.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"Res2Net50_26w_4s"
:
...
...
ppcls/arch/backbone/model_zoo/res2net_vd.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"Res2Net50_vd_26w_4s"
:
...
...
ppcls/arch/backbone/model_zoo/resnest.py
浏览文件 @
6cb17cfe
...
...
@@ -30,7 +30,7 @@ from paddle.nn import Conv2D, BatchNorm, Linear, Dropout
from
paddle.nn
import
AdaptiveAvgPool2D
,
MaxPool2D
,
AvgPool2D
from
paddle.regularizer
import
L2Decay
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ResNeSt50_fast_1s1x64d"
:
...
...
ppcls/arch/backbone/model_zoo/resnet_vc.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ResNet50_vc"
:
...
...
ppcls/arch/backbone/model_zoo/resnext.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ResNeXt50_32x4d"
:
...
...
ppcls/arch/backbone/model_zoo/resnext101_wsl.py
浏览文件 @
6cb17cfe
...
...
@@ -22,7 +22,7 @@ from paddle.nn import Conv2D, BatchNorm, Linear, Dropout
from
paddle.nn
import
AdaptiveAvgPool2D
,
MaxPool2D
,
AvgPool2D
from
paddle.nn.initializer
import
Uniform
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ResNeXt101_32x8d_wsl"
:
...
...
ppcls/arch/backbone/model_zoo/resnext_vd.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ResNeXt50_vd_32x4d"
:
...
...
ppcls/arch/backbone/model_zoo/rexnet.py
浏览文件 @
6cb17cfe
...
...
@@ -24,7 +24,7 @@ from paddle import ParamAttr
import
paddle.nn
as
nn
from
math
import
ceil
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ReXNet_1_0"
:
...
...
ppcls/arch/backbone/model_zoo/se_resnet_vd.py
浏览文件 @
6cb17cfe
...
...
@@ -28,7 +28,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"SE_ResNet18_vd"
:
...
...
ppcls/arch/backbone/model_zoo/se_resnext.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"SE_ResNeXt50_32x4d"
:
...
...
ppcls/arch/backbone/model_zoo/se_resnext_vd.py
浏览文件 @
6cb17cfe
...
...
@@ -29,7 +29,7 @@ from paddle.nn.initializer import Uniform
import
math
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"SE_ResNeXt50_vd_32x4d"
:
...
...
ppcls/arch/backbone/model_zoo/shufflenet_v2.py
浏览文件 @
6cb17cfe
...
...
@@ -24,7 +24,7 @@ from paddle.nn import Layer, Conv2D, MaxPool2D, AdaptiveAvgPool2D, BatchNorm, Li
from
paddle.nn.initializer
import
KaimingNormal
from
paddle.nn.functional
import
swish
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ShuffleNetV2_x0_25"
:
...
...
ppcls/arch/backbone/model_zoo/squeezenet.py
浏览文件 @
6cb17cfe
...
...
@@ -21,7 +21,7 @@ import paddle.nn.functional as F
from
paddle.nn
import
Conv2D
,
BatchNorm
,
Linear
,
Dropout
from
paddle.nn
import
AdaptiveAvgPool2D
,
MaxPool2D
,
AvgPool2D
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"SqueezeNet1_0"
:
...
...
ppcls/arch/backbone/model_zoo/tnt.py
浏览文件 @
6cb17cfe
...
...
@@ -23,8 +23,8 @@ import paddle.nn as nn
from
paddle.nn.initializer
import
TruncatedNormal
,
Constant
from
ppcls.arch.backbone
.base.theseus_layer
import
Identity
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
.
.base.theseus_layer
import
Identity
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"TNT_small"
:
...
...
ppcls/arch/backbone/model_zoo/van.py
浏览文件 @
6cb17cfe
...
...
@@ -21,7 +21,7 @@ import paddle
import
paddle.nn
as
nn
from
paddle.nn.initializer
import
TruncatedNormal
,
Constant
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"VAN_tiny"
:
""
,
# TODO
...
...
ppcls/arch/backbone/model_zoo/vision_transformer.py
浏览文件 @
6cb17cfe
...
...
@@ -22,7 +22,7 @@ import paddle
import
paddle.nn
as
nn
from
paddle.nn.initializer
import
TruncatedNormal
,
Constant
,
Normal
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"ViT_small_patch16_224"
:
...
...
ppcls/arch/backbone/model_zoo/xception.py
浏览文件 @
6cb17cfe
...
...
@@ -24,7 +24,7 @@ from paddle.nn.initializer import Uniform
import
math
import
sys
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"Xception41"
:
...
...
ppcls/arch/backbone/model_zoo/xception_deeplab.py
浏览文件 @
6cb17cfe
...
...
@@ -21,7 +21,7 @@ import paddle.nn.functional as F
from
paddle.nn
import
Conv2D
,
BatchNorm
,
Linear
,
Dropout
from
paddle.nn
import
AdaptiveAvgPool2D
,
MaxPool2D
,
AvgPool2D
from
ppcls
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
from
...
.utils.save_load
import
load_dygraph_pretrain
,
load_dygraph_pretrain_from_url
MODEL_URLS
=
{
"Xception41_deeplab"
:
...
...
ppcls/arch/backbone/variant_models/pp_lcnet_variant.py
浏览文件 @
6cb17cfe
import
paddle
from
paddle.nn
import
Sigmoid
from
paddle.nn
import
Tanh
from
ppcls.arch.backbone
.legendary_models.pp_lcnet
import
PPLCNet_x2_5
from
.
.legendary_models.pp_lcnet
import
PPLCNet_x2_5
__all__
=
[
"PPLCNet_x2_5_Tanh"
]
...
...
ppcls/arch/backbone/variant_models/resnet_variant.py
浏览文件 @
6cb17cfe
from
paddle.nn
import
Conv2D
from
ppcls.arch.backbone
.legendary_models.resnet
import
ResNet50
,
MODEL_URLS
,
_load_pretrained
from
.
.legendary_models.resnet
import
ResNet50
,
MODEL_URLS
,
_load_pretrained
__all__
=
[
"ResNet50_last_stage_stride1"
]
...
...
ppcls/arch/backbone/variant_models/vgg_variant.py
浏览文件 @
6cb17cfe
import
paddle
from
paddle.nn
import
Sigmoid
from
ppcls.arch.backbone
.legendary_models.vgg
import
VGG19
from
.
.legendary_models.vgg
import
VGG19
__all__
=
[
"VGG19Sigmoid"
]
...
...
ppcls/arch/gears/bnneck.py
浏览文件 @
6cb17cfe
...
...
@@ -17,7 +17,7 @@ from __future__ import absolute_import, division, print_function
import
paddle
import
paddle.nn
as
nn
from
ppcls.arch
.utils
import
get_param_attr_dict
from
.
.utils
import
get_param_attr_dict
class
BNNeck
(
nn
.
Layer
):
...
...
ppcls/arch/gears/fc.py
浏览文件 @
6cb17cfe
...
...
@@ -19,7 +19,7 @@ from __future__ import print_function
import
paddle
import
paddle.nn
as
nn
from
ppcls.arch
.utils
import
get_param_attr_dict
from
.
.utils
import
get_param_attr_dict
class
FC
(
nn
.
Layer
):
...
...
ppcls/arch/slim/__init__.py
浏览文件 @
6cb17cfe
...
...
@@ -12,5 +12,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
ppcls.arch.slim
.prune
import
prune_model
from
ppcls.arch.slim
.quant
import
quantize_model
from
.prune
import
prune_model
from
.quant
import
quantize_model
ppcls/arch/slim/prune.py
浏览文件 @
6cb17cfe
...
...
@@ -14,7 +14,7 @@
from
__future__
import
absolute_import
,
division
,
print_function
import
paddle
from
ppcls
.utils
import
logger
from
..
.utils
import
logger
def
prune_model
(
config
,
model
):
...
...
@@ -37,7 +37,6 @@ def prune_model(config, model):
model
.
pruner
=
None
def
_prune_model
(
config
,
model
):
from
paddleslim.analysis
import
dygraph_flops
as
flops
logger
.
info
(
"FLOPs before pruning: {}GFLOPs"
.
format
(
...
...
ppcls/arch/slim/quant.py
浏览文件 @
6cb17cfe
...
...
@@ -14,7 +14,7 @@
from
__future__
import
absolute_import
,
division
,
print_function
import
paddle
from
ppcls
.utils
import
logger
from
..
.utils
import
logger
QUANT_CONFIG
=
{
# weight preprocess type, default is None and no preprocessing is performed.
...
...
ppcls/utils/check.py
浏览文件 @
6cb17cfe
...
...
@@ -22,8 +22,8 @@ import sys
import
paddle
from
paddle
import
is_compiled_with_cuda
from
ppcls
.arch.utils
import
get_architectures
,
similar_architectures
,
get_blacklist_model_in_static_mode
from
ppcls.utils
import
logger
from
.
.arch.utils
import
get_architectures
,
similar_architectures
,
get_blacklist_model_in_static_mode
from
.
import
logger
def
check_version
():
...
...
ppcls/utils/config.py
浏览文件 @
6cb17cfe
...
...
@@ -16,8 +16,9 @@ import os
import
copy
import
argparse
import
yaml
from
ppcls.utils
import
logger
from
ppcls.utils
import
check
from
.
import
logger
from
.
import
check
__all__
=
[
'get_config'
]
...
...
ppcls/utils/download.py
浏览文件 @
6cb17cfe
...
...
@@ -28,7 +28,7 @@ import time
from
collections
import
OrderedDict
from
tqdm
import
tqdm
from
ppcls.utils
import
logger
from
.
import
logger
__all__
=
[
'get_weights_path_from_url'
]
...
...
ppcls/utils/gallery2fc.py
浏览文件 @
6cb17cfe
...
...
@@ -20,12 +20,12 @@ import sys
__dir__
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
sys
.
path
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
__dir__
,
'../../'
)))
from
ppcls
.arch
import
build_model
from
ppcls.utils
.config
import
parse_config
,
parse_args
from
ppcls.utils
.save_load
import
load_dygraph_pretrain
from
ppcls.utils
.logger
import
init_logger
from
ppcls
.data
import
create_operators
from
ppcls
.arch.slim
import
quantize_model
from
.
.arch
import
build_model
from
.config
import
parse_config
,
parse_args
from
.save_load
import
load_dygraph_pretrain
from
.logger
import
init_logger
from
.
.data
import
create_operators
from
.
.arch.slim
import
quantize_model
class
GalleryLayer
(
paddle
.
nn
.
Layer
):
...
...
ppcls/utils/model_zoo.py
浏览文件 @
6cb17cfe
...
...
@@ -23,8 +23,8 @@ import tarfile
import
tqdm
import
zipfile
from
ppcls
.arch.utils
import
similar_architectures
from
ppcls.utils
import
logger
from
.
.arch.utils
import
similar_architectures
from
.
import
logger
__all__
=
[
'get'
]
...
...
ppcls/utils/save_load.py
浏览文件 @
6cb17cfe
...
...
@@ -20,7 +20,7 @@ import errno
import
os
import
paddle
from
ppcls.utils
import
logger
from
.
import
logger
from
.download
import
get_weights_path_from_url
__all__
=
[
'init_model'
,
'save_model'
,
'load_dygraph_pretrain'
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录