Open hupu1dong opened 1 year ago
For now, this layer isn't supported. I will check the possibility to add it in the next update.
I look forward to realizing this layer
What is this for?
I look forward to realizing this layer
Now you can use the ONNX conversion to DeepStream. Probably it will work with your custom layers now.
My steps:
Add the following code to common. py:
class h_swish(nn.Module): def init(self, inplace=True): super(h_swish, self).init() self.sigmoid = h_sigmoid(inplace=inplace)
class CoordAtt(nn.Module): def init(self, inp, oup, reduction=32): super(CoordAtt, self).init() self.pool_h = nn.AdaptiveAvgPool2d((None, 1)) self.pool_w = nn.AdaptiveAvgPool2d((1, None))
class SELayer(nn.Module): def init(self, c1, r=16): super(SELayer, self).init() self.avgpool = nn.AdaptiveAvgPool2d(1) self.l1 = nn.Linear(c1, c1 // r, bias=False) self.relu = nn.ReLU(inplace=True) self.l2 = nn.Linear(c1 // r, c1, bias=False) self.sig = nn.Sigmoid()
class eca_layer(nn.Module): """Constructs a ECA module. Args: channel: Number of channels of the input feature map k_size: Adaptive selection of kernel size """
class ChannelAttention(nn.Module): def init(self, in_planes, ratio=16): super(ChannelAttention, self).init() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.max_pool = nn.AdaptiveMaxPool2d(1)
class SpatialAttention(nn.Module): def init(self, kernel_size=7): super(SpatialAttention, self).init()
class CBAMC3(nn.Module):
CSP Bottleneck with 3 convolutions
YOLOv5 🚀 by Ultralytics, GPL-3.0 license
Parameters
nc: 2 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple anchors: 3
- [10,13, 16,30, 33,23] # P3/8
- [30,61, 62,45, 59,119] # P4/16
- [116,90, 156,198, 373,326] # P5/32
YOLOv5 v6.0 backbone
backbone:
[from, number, module, args]
[[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, C3, [128]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 6, C3, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, C3, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 3, C3, [1024]], [-1, 1, CoordAtt,[1024]], [-1, 1, SPPF, [1024, 5]], # 10 ]
YOLOv5 v6.0 head
head: [[-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 6], 1, Concat, [1]], # cat backbone P4 [-1, 3, C3, [512, False]], # 14
[-1, 1, Conv, [256, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 4], 1, Concat, [1]], # cat backbone P3 [-1, 3, C3, [256, False]], # 18 (P3/8-small)
[-1, 1, Conv, [256, 3, 2]], [[-1, 15], 1, Concat, [1]], # cat head P4 [-1, 3, C3, [512, False]], # 21 (P4/16-medium)
[-1, 1, Conv, [512, 3, 2]], [[-1, 11], 1, Concat, [1]], # cat head P5 [-1, 3, C3, [1024, False]], # 24 (P5/32-large)
[[18, 21, 24], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5) ]