|
|
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
|
|
"""
|
|
|
|
Ultralytics modules. Visualize with:
|
|
|
|
|
|
|
|
from ultralytics.nn.modules import *
|
|
|
|
import torch
|
|
|
|
import os
|
|
|
|
|
|
|
|
x = torch.ones(1, 128, 40, 40)
|
|
|
|
m = Conv(128, 128)
|
|
|
|
f = f'{m._get_name()}.onnx'
|
|
|
|
torch.onnx.export(m, x, f)
|
|
|
|
os.system(f'onnxsim {f} {f} && open {f}')
|
|
|
|
"""
|
|
|
|
|
|
|
|
from .block import (C1, C2, C3, C3TR, DFL, SPP, SPPF, Bottleneck, BottleneckCSP, C2f, C3Ghost, C3x, GhostBottleneck,
|
|
|
|
HGBlock, HGStem, Proto, RepC3)
|
|
|
|
from .conv import (CBAM, ChannelAttention, Concat, Conv, Conv2, ConvTranspose, DWConv, DWConvTranspose2d, Focus,
|
|
|
|
GhostConv, LightConv, RepConv, SpatialAttention)
|
|
|
|
from .head import Classify, Detect, Pose, RTDETRDecoder, Segment
|
|
|
|
from .transformer import (AIFI, MLP, DeformableTransformerDecoder, DeformableTransformerDecoderLayer, LayerNorm2d,
|
|
|
|
MLPBlock, MSDeformAttn, TransformerBlock, TransformerEncoderLayer, TransformerLayer)
|
|
|
|
|
|
|
|
__all__ = ('Conv', 'Conv2', 'LightConv', 'RepConv', 'DWConv', 'DWConvTranspose2d', 'ConvTranspose', 'Focus',
|
|
|
|
'GhostConv', 'ChannelAttention', 'SpatialAttention', 'CBAM', 'Concat', 'TransformerLayer',
|
|
|
|
'TransformerBlock', 'MLPBlock', 'LayerNorm2d', 'DFL', 'HGBlock', 'HGStem', 'SPP', 'SPPF', 'C1', 'C2', 'C3',
|
|
|
|
'C2f', 'C3x', 'C3TR', 'C3Ghost', 'GhostBottleneck', 'Bottleneck', 'BottleneckCSP', 'Proto', 'Detect',
|
|
|
|
'Segment', 'Pose', 'Classify', 'TransformerEncoderLayer', 'RepC3', 'RTDETRDecoder', 'AIFI',
|
|
|
|
'DeformableTransformerDecoder', 'DeformableTransformerDecoderLayer', 'MSDeformAttn', 'MLP')
|