|
|
# lib/__init__.py
|
|
|
# 完整导入 lib 目录下所有模块的公共接口,确保无未定义引用
|
|
|
|
|
|
# ======================================
|
|
|
# 1. 导入 pvtv2.py 中的类和模型
|
|
|
# ======================================
|
|
|
from .pvtv2 import (
|
|
|
# 基础组件类
|
|
|
Mlp,
|
|
|
Attention,
|
|
|
Block,
|
|
|
OverlapPatchEmbed,
|
|
|
PyramidVisionTransformerImpr,
|
|
|
DWConv,
|
|
|
# PVTv2 模型实例
|
|
|
pvt_v2_b0,
|
|
|
pvt_v2_b1,
|
|
|
pvt_v2_b2,
|
|
|
pvt_v2_b3,
|
|
|
pvt_v2_b4,
|
|
|
pvt_v2_b5
|
|
|
)
|
|
|
|
|
|
# ======================================
|
|
|
# 2. 导入 resnet.py 中的类和模型
|
|
|
# ======================================
|
|
|
from .resnet import (
|
|
|
# ResNet 基础类
|
|
|
ResNet,
|
|
|
# ResNet 模型实例
|
|
|
resnet18,
|
|
|
resnet34,
|
|
|
resnet50,
|
|
|
resnet101,
|
|
|
resnet152
|
|
|
)
|
|
|
|
|
|
# ======================================
|
|
|
# 3. 导入 networks.py 中的模型类(关键:按实际类名调整)
|
|
|
# ======================================
|
|
|
# 注意:如果 networks.py 中的主模型类是 EMCADNet,保留以下导入;
|
|
|
# 如果是其他名称(如 EMCAD),请替换为实际类名(与 networks.py 完全一致)
|
|
|
from .networks import EMCADNet
|
|
|
|
|
|
# ======================================
|
|
|
# 4. 导入 decoders.py 中的类和函数(基于你提供的完整代码)
|
|
|
# ======================================
|
|
|
from .decoders import (
|
|
|
# 工具函数
|
|
|
gcd,
|
|
|
_init_weights,
|
|
|
act_layer,
|
|
|
channel_shuffle,
|
|
|
MSCBLayer,
|
|
|
# 解码模块类
|
|
|
MSDC,
|
|
|
MSCB,
|
|
|
EUCB,
|
|
|
LGAG,
|
|
|
CAB,
|
|
|
SAB,
|
|
|
EMCAD # decoders.py 中定义的 EMCAD 解码模块
|
|
|
)
|
|
|
|
|
|
# ======================================
|
|
|
# 全局公共接口:定义可通过 from lib import * 导入的内容
|
|
|
# ======================================
|
|
|
__all__ = [
|
|
|
# ------------------------------
|
|
|
# pvtv2.py
|
|
|
# ------------------------------
|
|
|
'Mlp',
|
|
|
'Attention',
|
|
|
'Block',
|
|
|
'OverlapPatchEmbed',
|
|
|
'PyramidVisionTransformerImpr',
|
|
|
'DWConv',
|
|
|
'pvt_v2_b0',
|
|
|
'pvt_v2_b1',
|
|
|
'pvt_v2_b2',
|
|
|
'pvt_v2_b3',
|
|
|
'pvt_v2_b4',
|
|
|
'pvt_v2_b5',
|
|
|
# ------------------------------
|
|
|
# resnet.py
|
|
|
# ------------------------------
|
|
|
'ResNet',
|
|
|
'resnet18',
|
|
|
'resnet34',
|
|
|
'resnet50',
|
|
|
'resnet101',
|
|
|
'resnet152',
|
|
|
# ------------------------------
|
|
|
# networks.py
|
|
|
# ------------------------------
|
|
|
'EMCADNet', # 与 networks.py 中的类名保持一致
|
|
|
# ------------------------------
|
|
|
# decoders.py
|
|
|
# ------------------------------
|
|
|
'gcd',
|
|
|
'_init_weights',
|
|
|
'act_layer',
|
|
|
'channel_shuffle',
|
|
|
'MSCBLayer',
|
|
|
'MSDC',
|
|
|
'MSCB',
|
|
|
'EUCB',
|
|
|
'LGAG',
|
|
|
'CAB',
|
|
|
'SAB',
|
|
|
'EMCAD'
|
|
|
] |