EfficientDet for object detection.
/home/user/jupyter/env/lib/python3.7/site-packages/torch/cuda/__init__.py:52: UserWarning: CUDA initialization: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx (Triggered internally at  /pytorch/c10/cuda/CUDAFunctions.cpp:100.)
  return torch._C._cuda_getDeviceCount() > 0

class EffDetModelWrapper[source]

EffDetModelWrapper(num_classes, compound_coef=0, pretrained=True, pretrained_backbone=True, nms_score_thresh=0.05, nms_iou_thresh=0.5, ratios='[(1.0,1.0),(1.4,0.7),(0.7,1.4)]', scales='[2**0, 2**(1.0/3.0), 2**(2.0/3.0)]', focal_loss_alpha=0.25, focal_loss_gamma=2.0, **kwargs) :: Module

Base class for all neural network modules.

Your models should also subclass this class.

Modules can also contain other Modules, allowing to nest them in a tree structure. You can assign the submodules as regular attributes::

import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.conv1 = nn.Conv2d(1, 20, 5)
        self.conv2 = nn.Conv2d(20, 20, 5)

    def forward(self, x):
        x = F.relu(self.conv1(x))
        return F.relu(self.conv2(x))

Submodules assigned in this way will be registered, and will have their parameters converted too when you call :meth:to, etc.

:ivar training: Boolean represents whether this module is in training or evaluation mode. :vartype training: bool

Function to create the model

get_efficientdet_model[source]

get_efficientdet_model(num_classes, compound_coef=0, pretrained_backbone=True, pretrained=True, nms_score_thresh=0.05, nms_iou_thresh=0.5, focal_loss_alpha=0.25, focal_loss_gamma=2.0, ratios='[(1.0,1.0),(1.4,0.7),(0.7,1.4)]', scales='[2**0, 2**(1.0/3.0), 2**(2.0/3.0)]')

get_efficientdet_model

Custom EfficientDet

To create a model, which you can pass to a ObjDetLearner simply create a partial with the function get_efficientdet_model.

from functools import partial

custom_effdet = partial(get_efficientdet_model, compound_coef=3, 
                        pretrained=True, focal_loss_gamma=1.5)

When building the Learner, the number of classes are getting passed to this partial function and the model is ready for training.

custom_effdet(num_classes=10)
Downloading: "https://github.com/zylo117/Yet-Another-Efficient-Pytorch/releases/download/1.0/efficientdet-d3.pth" to /home/user/.cache/torch/hub/checkpoints/efficientdet-d3.pth
EffDetModelWrapper(
  (criterion): FocalLoss()
  (model): EfficientDetBackbone(
    (bifpn): Sequential(
      (0): BiFPN(
        (conv6_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv3_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv6_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv7_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p6_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p5_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p3_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p5_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p6_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p7_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (swish): MemoryEfficientSwish()
        (p5_down_channel): Sequential(
          (0): Conv2dStaticSamePadding(
            (conv): Conv2d(384, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p4_down_channel): Sequential(
          (0): Conv2dStaticSamePadding(
            (conv): Conv2d(136, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p3_down_channel): Sequential(
          (0): Conv2dStaticSamePadding(
            (conv): Conv2d(48, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p5_to_p6): Sequential(
          (0): Conv2dStaticSamePadding(
            (conv): Conv2d(384, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): MaxPool2dStaticSamePadding(
            (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
        )
        (p6_to_p7): Sequential(
          (0): MaxPool2dStaticSamePadding(
            (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
        )
        (p4_down_channel_2): Sequential(
          (0): Conv2dStaticSamePadding(
            (conv): Conv2d(136, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p5_down_channel_2): Sequential(
          (0): Conv2dStaticSamePadding(
            (conv): Conv2d(384, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p6_w1_relu): ReLU()
        (p5_w1_relu): ReLU()
        (p4_w1_relu): ReLU()
        (p3_w1_relu): ReLU()
        (p4_w2_relu): ReLU()
        (p5_w2_relu): ReLU()
        (p6_w2_relu): ReLU()
        (p7_w2_relu): ReLU()
      )
      (1): BiFPN(
        (conv6_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv3_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv6_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv7_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p6_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p5_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p3_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p5_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p6_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p7_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (swish): MemoryEfficientSwish()
        (p6_w1_relu): ReLU()
        (p5_w1_relu): ReLU()
        (p4_w1_relu): ReLU()
        (p3_w1_relu): ReLU()
        (p4_w2_relu): ReLU()
        (p5_w2_relu): ReLU()
        (p6_w2_relu): ReLU()
        (p7_w2_relu): ReLU()
      )
      (2): BiFPN(
        (conv6_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv3_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv6_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv7_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p6_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p5_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p3_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p5_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p6_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p7_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (swish): MemoryEfficientSwish()
        (p6_w1_relu): ReLU()
        (p5_w1_relu): ReLU()
        (p4_w1_relu): ReLU()
        (p3_w1_relu): ReLU()
        (p4_w2_relu): ReLU()
        (p5_w2_relu): ReLU()
        (p6_w2_relu): ReLU()
        (p7_w2_relu): ReLU()
      )
      (3): BiFPN(
        (conv6_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv3_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv6_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv7_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p6_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p5_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p3_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p5_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p6_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p7_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (swish): MemoryEfficientSwish()
        (p6_w1_relu): ReLU()
        (p5_w1_relu): ReLU()
        (p4_w1_relu): ReLU()
        (p3_w1_relu): ReLU()
        (p4_w2_relu): ReLU()
        (p5_w2_relu): ReLU()
        (p6_w2_relu): ReLU()
        (p7_w2_relu): ReLU()
      )
      (4): BiFPN(
        (conv6_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv3_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv6_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv7_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p6_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p5_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p3_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p5_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p6_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p7_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (swish): MemoryEfficientSwish()
        (p6_w1_relu): ReLU()
        (p5_w1_relu): ReLU()
        (p4_w1_relu): ReLU()
        (p3_w1_relu): ReLU()
        (p4_w2_relu): ReLU()
        (p5_w2_relu): ReLU()
        (p6_w2_relu): ReLU()
        (p7_w2_relu): ReLU()
      )
      (5): BiFPN(
        (conv6_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv3_up): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv4_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv5_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv6_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (conv7_down): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
          (bn): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (p6_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p5_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p3_upsample): Upsample(scale_factor=2.0, mode=nearest)
        (p4_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p5_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p6_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (p7_downsample): MaxPool2dStaticSamePadding(
          (pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (swish): MemoryEfficientSwish()
        (p6_w1_relu): ReLU()
        (p5_w1_relu): ReLU()
        (p4_w1_relu): ReLU()
        (p3_w1_relu): ReLU()
        (p4_w2_relu): ReLU()
        (p5_w2_relu): ReLU()
        (p6_w2_relu): ReLU()
        (p7_w2_relu): ReLU()
      )
    )
    (regressor): Regressor(
      (conv_list): ModuleList(
        (0): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (1): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (bn_list): ModuleList(
        (0): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (1): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (2): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (3): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (4): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
      )
      (header): SeparableConvBlock(
        (depthwise_conv): Conv2dStaticSamePadding(
          (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
        )
        (pointwise_conv): Conv2dStaticSamePadding(
          (conv): Conv2d(160, 36, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (swish): MemoryEfficientSwish()
    )
    (classifier): Classifier(
      (conv_list): ModuleList(
        (0): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (1): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): SeparableConvBlock(
          (depthwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
          )
          (pointwise_conv): Conv2dStaticSamePadding(
            (conv): Conv2d(160, 160, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (bn_list): ModuleList(
        (0): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (1): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (2): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (3): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
        (4): ModuleList(
          (0): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (1): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (2): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          (3): BatchNorm2d(160, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        )
      )
      (header): SeparableConvBlock(
        (depthwise_conv): Conv2dStaticSamePadding(
          (conv): Conv2d(160, 160, kernel_size=(3, 3), stride=(1, 1), groups=160, bias=False)
        )
        (pointwise_conv): Conv2dStaticSamePadding(
          (conv): Conv2d(160, 90, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (swish): MemoryEfficientSwish()
    )
    (anchors): Anchors()
    (backbone_net): EfficientNet(
      (model): EffNet(
        (_conv_stem): Conv2dStaticSamePadding(
          (conv): Conv2d(3, 40, kernel_size=(3, 3), stride=(2, 2), bias=False)
        )
        (_bn0): BatchNorm2d(40, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
        (_blocks): ModuleList(
          (0): MBConvBlock(
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(40, 40, kernel_size=(3, 3), stride=[1], groups=40, bias=False)
            )
            (_bn1): BatchNorm2d(40, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(40, 10, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(10, 40, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(40, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(24, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (1): MBConvBlock(
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 24, kernel_size=(3, 3), stride=(1, 1), groups=24, bias=False)
            )
            (_bn1): BatchNorm2d(24, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 6, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(6, 24, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(24, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (2): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(144, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(144, 144, kernel_size=(3, 3), stride=[2], groups=144, bias=False)
            )
            (_bn1): BatchNorm2d(144, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(144, 6, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(6, 144, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(144, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(32, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (3): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(192, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), groups=192, bias=False)
            )
            (_bn1): BatchNorm2d(192, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 8, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(8, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(32, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (4): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(192, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), groups=192, bias=False)
            )
            (_bn1): BatchNorm2d(192, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 8, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(8, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(32, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (5): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(192, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 192, kernel_size=(5, 5), stride=[2], groups=192, bias=False)
            )
            (_bn1): BatchNorm2d(192, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 8, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(8, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(48, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (6): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(48, 288, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(288, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 288, kernel_size=(5, 5), stride=(1, 1), groups=288, bias=False)
            )
            (_bn1): BatchNorm2d(288, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 12, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(12, 288, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(48, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (7): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(48, 288, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(288, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 288, kernel_size=(5, 5), stride=(1, 1), groups=288, bias=False)
            )
            (_bn1): BatchNorm2d(288, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 12, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(12, 288, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(48, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (8): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(48, 288, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(288, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 288, kernel_size=(3, 3), stride=[2], groups=288, bias=False)
            )
            (_bn1): BatchNorm2d(288, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 12, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(12, 288, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(288, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(96, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (9): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), groups=576, bias=False)
            )
            (_bn1): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 24, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 576, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(96, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (10): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), groups=576, bias=False)
            )
            (_bn1): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 24, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 576, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(96, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (11): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), groups=576, bias=False)
            )
            (_bn1): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 24, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 576, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(96, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (12): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), groups=576, bias=False)
            )
            (_bn1): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 24, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 576, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(96, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (13): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 576, kernel_size=(5, 5), stride=[1], groups=576, bias=False)
            )
            (_bn1): BatchNorm2d(576, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 24, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(24, 576, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(576, 136, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(136, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (14): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(136, 816, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 816, kernel_size=(5, 5), stride=(1, 1), groups=816, bias=False)
            )
            (_bn1): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 34, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(34, 816, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 136, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(136, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (15): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(136, 816, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 816, kernel_size=(5, 5), stride=(1, 1), groups=816, bias=False)
            )
            (_bn1): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 34, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(34, 816, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 136, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(136, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (16): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(136, 816, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 816, kernel_size=(5, 5), stride=(1, 1), groups=816, bias=False)
            )
            (_bn1): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 34, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(34, 816, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 136, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(136, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (17): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(136, 816, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 816, kernel_size=(5, 5), stride=(1, 1), groups=816, bias=False)
            )
            (_bn1): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 34, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(34, 816, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 136, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(136, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (18): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(136, 816, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 816, kernel_size=(5, 5), stride=[2], groups=816, bias=False)
            )
            (_bn1): BatchNorm2d(816, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 34, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(34, 816, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(816, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(232, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (19): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(232, 1392, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 1392, kernel_size=(5, 5), stride=(1, 1), groups=1392, bias=False)
            )
            (_bn1): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 58, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(58, 1392, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(232, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (20): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(232, 1392, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 1392, kernel_size=(5, 5), stride=(1, 1), groups=1392, bias=False)
            )
            (_bn1): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 58, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(58, 1392, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(232, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (21): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(232, 1392, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 1392, kernel_size=(5, 5), stride=(1, 1), groups=1392, bias=False)
            )
            (_bn1): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 58, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(58, 1392, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(232, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (22): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(232, 1392, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 1392, kernel_size=(5, 5), stride=(1, 1), groups=1392, bias=False)
            )
            (_bn1): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 58, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(58, 1392, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(232, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (23): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(232, 1392, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 1392, kernel_size=(5, 5), stride=(1, 1), groups=1392, bias=False)
            )
            (_bn1): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 58, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(58, 1392, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(232, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (24): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(232, 1392, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 1392, kernel_size=(3, 3), stride=[1], groups=1392, bias=False)
            )
            (_bn1): BatchNorm2d(1392, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 58, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(58, 1392, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(1392, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(384, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
          (25): MBConvBlock(
            (_expand_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(384, 2304, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn0): BatchNorm2d(2304, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_depthwise_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(2304, 2304, kernel_size=(3, 3), stride=(1, 1), groups=2304, bias=False)
            )
            (_bn1): BatchNorm2d(2304, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_se_reduce): Conv2dStaticSamePadding(
              (conv): Conv2d(2304, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (_se_expand): Conv2dStaticSamePadding(
              (conv): Conv2d(96, 2304, kernel_size=(1, 1), stride=(1, 1))
            )
            (_project_conv): Conv2dStaticSamePadding(
              (conv): Conv2d(2304, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
            )
            (_bn2): BatchNorm2d(384, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
            (_swish): MemoryEfficientSwish()
          )
        )
        (_swish): MemoryEfficientSwish()
      )
    )
  )
  (regressBoxes): BBoxTransform()
  (clipBoxes): ClipBoxes()
)

Prebuilt models