/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
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
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()
)
There are some prebuilt model partials, which you can use instantly: