您的足迹: efficientvit-模型结构

这是本文档旧的修订版!


fficientvit-模型结构

fficientvit 模型的文本结构输出

EfficientVit(
  (stem): Stem(
    (in_conv): ConvNormAct(
      (dropout): Dropout(p=0.0, inplace=False)
      (conv): Conv2d(3, 8, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
      (norm): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (act): Hardswish()
    )
    (res0): ResidualBlock(
      (pre_norm): Identity()
      (main): DSConv(
        (depth_conv): ConvNormAct(
          (dropout): Dropout(p=0.0, inplace=False)
          (conv): Conv2d(8, 8, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=8, bias=False)
          (norm): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (act): Hardswish()
        )
        (point_conv): ConvNormAct(
          (dropout): Dropout(p=0.0, inplace=False)
          (conv): Conv2d(8, 8, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (norm): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (act): Identity()
        )
      )
      (shortcut): Identity()
    )
  )
  (stages): Sequential(
    (0): EfficientVitStage(
      (blocks): Sequential(
        (0): ResidualBlock(
          (pre_norm): Identity()
          (main): MBConv(
            (inverted_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(8, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (depth_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=32, bias=False)
              (norm): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (point_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(32, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Identity()
            )
          )
        )
        (1): ResidualBlock(
          (pre_norm): Identity()
          (main): MBConv(
            (inverted_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(16, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (depth_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)
              (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (point_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(64, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Identity()
            )
          )
          (shortcut): Identity()
        )
      )
    )
    (1): EfficientVitStage(
      (blocks): Sequential(
        (0): ResidualBlock(
          (pre_norm): Identity()
          (main): MBConv(
            (inverted_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(16, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (depth_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=64, bias=False)
              (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (point_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Identity()
            )
          )
        )
        (1): ResidualBlock(
          (pre_norm): Identity()
          (main): MBConv(
            (inverted_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(32, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (depth_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)
              (norm): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Hardswish()
            )
            (point_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(128, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Identity()
            )
          )
          (shortcut): Identity()
        )
      )
    )
    (2): EfficientVitStage(
      (blocks): Sequential(
        (0): ResidualBlock(
          (pre_norm): Identity()
          (main): MBConv(
            (inverted_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(32, 128, kernel_size=(1, 1), stride=(1, 1))
              (norm): Identity()
              (act): Hardswish()
            )
            (depth_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=128)
              (norm): Identity()
              (act): Hardswish()
            )
            (point_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Identity()
            )
          )
        )
        (1): EfficientVitBlock(
          (context_module): ResidualBlock(
            (pre_norm): Identity()
            (main): LiteMLA(
              (qkv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(64, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): Identity()
                (act): Identity()
              )
              (aggreg): ModuleList(
                (0): Sequential(
                  (0): Conv2d(192, 192, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2), groups=192, bias=False)
                  (1): Conv2d(192, 192, kernel_size=(1, 1), stride=(1, 1), groups=12, bias=False)
                )
              )
              (kernel_func): ReLU()
              (proj): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
          (local_module): ResidualBlock(
            (pre_norm): Identity()
            (main): MBConv(
              (inverted_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1))
                (norm): Identity()
                (act): Hardswish()
              )
              (depth_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256)
                (norm): Identity()
                (act): Hardswish()
              )
              (point_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
        )
        (2): EfficientVitBlock(
          (context_module): ResidualBlock(
            (pre_norm): Identity()
            (main): LiteMLA(
              (qkv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(64, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): Identity()
                (act): Identity()
              )
              (aggreg): ModuleList(
                (0): Sequential(
                  (0): Conv2d(192, 192, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2), groups=192, bias=False)
                  (1): Conv2d(192, 192, kernel_size=(1, 1), stride=(1, 1), groups=12, bias=False)
                )
              )
              (kernel_func): ReLU()
              (proj): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
          (local_module): ResidualBlock(
            (pre_norm): Identity()
            (main): MBConv(
              (inverted_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1))
                (norm): Identity()
                (act): Hardswish()
              )
              (depth_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=256)
                (norm): Identity()
                (act): Hardswish()
              )
              (point_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
        )
      )
    )
    (3): EfficientVitStage(
      (blocks): Sequential(
        (0): ResidualBlock(
          (pre_norm): Identity()
          (main): MBConv(
            (inverted_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1))
              (norm): Identity()
              (act): Hardswish()
            )
            (depth_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=256)
              (norm): Identity()
              (act): Hardswish()
            )
            (point_conv): ConvNormAct(
              (dropout): Dropout(p=0.0, inplace=False)
              (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (norm): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (act): Identity()
            )
          )
        )
        (1): EfficientVitBlock(
          (context_module): ResidualBlock(
            (pre_norm): Identity()
            (main): LiteMLA(
              (qkv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(128, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): Identity()
                (act): Identity()
              )
              (aggreg): ModuleList(
                (0): Sequential(
                  (0): Conv2d(384, 384, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2), groups=384, bias=False)
                  (1): Conv2d(384, 384, kernel_size=(1, 1), stride=(1, 1), groups=24, bias=False)
                )
              )
              (kernel_func): ReLU()
              (proj): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
          (local_module): ResidualBlock(
            (pre_norm): Identity()
            (main): MBConv(
              (inverted_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1))
                (norm): Identity()
                (act): Hardswish()
              )
              (depth_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=512)
                (norm): Identity()
                (act): Hardswish()
              )
              (point_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
        )
        (2): EfficientVitBlock(
          (context_module): ResidualBlock(
            (pre_norm): Identity()
            (main): LiteMLA(
              (qkv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(128, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): Identity()
                (act): Identity()
              )
              (aggreg): ModuleList(
                (0): Sequential(
                  (0): Conv2d(384, 384, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2), groups=384, bias=False)
                  (1): Conv2d(384, 384, kernel_size=(1, 1), stride=(1, 1), groups=24, bias=False)
                )
              )
              (kernel_func): ReLU()
              (proj): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
          (local_module): ResidualBlock(
            (pre_norm): Identity()
            (main): MBConv(
              (inverted_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1))
                (norm): Identity()
                (act): Hardswish()
              )
              (depth_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=512)
                (norm): Identity()
                (act): Hardswish()
              )
              (point_conv): ConvNormAct(
                (dropout): Dropout(p=0.0, inplace=False)
                (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (norm): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
                (act): Identity()
              )
            )
            (shortcut): Identity()
          )
        )
      )
    )
  )
  (head): ClassifierHead(
    (in_conv): ConvNormAct(
      (dropout): Dropout(p=0.0, inplace=False)
      (conv): Conv2d(128, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (act): Hardswish()
    )
    (global_pool): SelectAdaptivePool2d(pool_type=avg, flatten=Flatten(start_dim=1, end_dim=-1))
    (classifier): Sequential(
      (0): Linear(in_features=1024, out_features=1280, bias=False)
      (1): LayerNorm((1280,), eps=1e-05, elementwise_affine=True)
      (2): Hardswish()
      (3): Dropout(p=0.0, inplace=False)
      (4): Linear(in_features=1280, out_features=1000, bias=True)
    )
  )
)

fficientvit 模型的模型PNG格式

评论

请输入您的评论. 可以使用维基语法:
 
人工智能/torch/常用模型结构/efficientvit-模型结构.1769151598.txt.gz · 最后更改: 2026/01/23 06:59