提交 01e1c8fa 编写于 作者: Bubbliiiing's avatar Bubbliiiing

update model_name

上级 4324a006
...@@ -25,9 +25,9 @@ class Conv(nn.Module): ...@@ -25,9 +25,9 @@ class Conv(nn.Module):
def fuseforward(self, x): def fuseforward(self, x):
return self.act(self.conv(x)) return self.act(self.conv(x))
class Block(nn.Module): class Multi_Concat_Block(nn.Module):
def __init__(self, c1, c2, c3, n=4, e=1, ids=[0]): def __init__(self, c1, c2, c3, n=4, e=1, ids=[0]):
super(Block, self).__init__() super(Multi_Concat_Block, self).__init__()
c_ = int(c2 * e) c_ = int(c2 * e)
self.ids = ids self.ids = ids
...@@ -58,9 +58,9 @@ class MP(nn.Module): ...@@ -58,9 +58,9 @@ class MP(nn.Module):
def forward(self, x): def forward(self, x):
return self.m(x) return self.m(x)
class Transition(nn.Module): class Transition_Block(nn.Module):
def __init__(self, c1, c2): def __init__(self, c1, c2):
super(Transition, self).__init__() super(Transition_Block, self).__init__()
self.cv1 = Conv(c1, c2, 1, 1) self.cv1 = Conv(c1, c2, 1, 1)
self.cv2 = Conv(c1, c2, 1, 1) self.cv2 = Conv(c1, c2, 1, 1)
self.cv3 = Conv(c2, c2, 3, 2) self.cv3 = Conv(c2, c2, 3, 2)
...@@ -93,19 +93,19 @@ class Backbone(nn.Module): ...@@ -93,19 +93,19 @@ class Backbone(nn.Module):
) )
self.dark2 = nn.Sequential( self.dark2 = nn.Sequential(
Conv(transition_channels * 2, transition_channels * 4, 3, 2), Conv(transition_channels * 2, transition_channels * 4, 3, 2),
Block(transition_channels * 4, block_channels * 2, transition_channels * 8, n=n, ids=ids), Multi_Concat_Block(transition_channels * 4, block_channels * 2, transition_channels * 8, n=n, ids=ids),
) )
self.dark3 = nn.Sequential( self.dark3 = nn.Sequential(
Transition(transition_channels * 8, transition_channels * 4), Transition_Block(transition_channels * 8, transition_channels * 4),
Block(transition_channels * 8, block_channels * 4, transition_channels * 16, n=n, ids=ids), Multi_Concat_Block(transition_channels * 8, block_channels * 4, transition_channels * 16, n=n, ids=ids),
) )
self.dark4 = nn.Sequential( self.dark4 = nn.Sequential(
Transition(transition_channels * 16, transition_channels * 8), Transition_Block(transition_channels * 16, transition_channels * 8),
Block(transition_channels * 16, block_channels * 8, transition_channels * 32, n=n, ids=ids), Multi_Concat_Block(transition_channels * 16, block_channels * 8, transition_channels * 32, n=n, ids=ids),
) )
self.dark5 = nn.Sequential( self.dark5 = nn.Sequential(
Transition(transition_channels * 32, transition_channels * 16), Transition_Block(transition_channels * 32, transition_channels * 16),
Block(transition_channels * 32, block_channels * 8, transition_channels * 32, n=n, ids=ids), Multi_Concat_Block(transition_channels * 32, block_channels * 8, transition_channels * 32, n=n, ids=ids),
) )
if pretrained: if pretrained:
......
...@@ -2,7 +2,7 @@ import numpy as np ...@@ -2,7 +2,7 @@ import numpy as np
import torch import torch
import torch.nn as nn import torch.nn as nn
from nets.backbone import Backbone, Block, Conv, SiLU, Transition, autopad from nets.backbone import Backbone, Multi_Concat_Block, Conv, SiLU, Transition_Block, autopad
class SPPCSPC(nn.Module): class SPPCSPC(nn.Module):
...@@ -240,17 +240,17 @@ class YoloBody(nn.Module): ...@@ -240,17 +240,17 @@ class YoloBody(nn.Module):
self.sppcspc = SPPCSPC(transition_channels * 32, transition_channels * 16) self.sppcspc = SPPCSPC(transition_channels * 32, transition_channels * 16)
self.conv_for_P5 = Conv(transition_channels * 16, transition_channels * 8) self.conv_for_P5 = Conv(transition_channels * 16, transition_channels * 8)
self.conv_for_feat2 = Conv(transition_channels * 32, transition_channels * 8) self.conv_for_feat2 = Conv(transition_channels * 32, transition_channels * 8)
self.conv3_for_upsample1 = Block(transition_channels * 16, panet_channels * 4, transition_channels * 8, e=e, n=n, ids=ids) self.conv3_for_upsample1 = Multi_Concat_Block(transition_channels * 16, panet_channels * 4, transition_channels * 8, e=e, n=n, ids=ids)
self.conv_for_P4 = Conv(transition_channels * 8, transition_channels * 4) self.conv_for_P4 = Conv(transition_channels * 8, transition_channels * 4)
self.conv_for_feat1 = Conv(transition_channels * 16, transition_channels * 4) self.conv_for_feat1 = Conv(transition_channels * 16, transition_channels * 4)
self.conv3_for_upsample2 = Block(transition_channels * 8, panet_channels * 2, transition_channels * 4, e=e, n=n, ids=ids) self.conv3_for_upsample2 = Multi_Concat_Block(transition_channels * 8, panet_channels * 2, transition_channels * 4, e=e, n=n, ids=ids)
self.down_sample1 = Transition(transition_channels * 4, transition_channels * 4) self.down_sample1 = Transition_Block(transition_channels * 4, transition_channels * 4)
self.conv3_for_downsample1 = Block(transition_channels * 16, panet_channels * 4, transition_channels * 8, e=e, n=n, ids=ids) self.conv3_for_downsample1 = Multi_Concat_Block(transition_channels * 16, panet_channels * 4, transition_channels * 8, e=e, n=n, ids=ids)
self.down_sample2 = Transition(transition_channels * 8, transition_channels * 8) self.down_sample2 = Transition_Block(transition_channels * 8, transition_channels * 8)
self.conv3_for_downsample2 = Block(transition_channels * 32, panet_channels * 8, transition_channels * 16, e=e, n=n, ids=ids) self.conv3_for_downsample2 = Multi_Concat_Block(transition_channels * 32, panet_channels * 8, transition_channels * 16, e=e, n=n, ids=ids)
self.rep_conv_1 = conv(transition_channels * 4, transition_channels * 8, 3, 1) self.rep_conv_1 = conv(transition_channels * 4, transition_channels * 8, 3, 1)
self.rep_conv_2 = conv(transition_channels * 8, transition_channels * 16, 3, 1) self.rep_conv_2 = conv(transition_channels * 8, transition_channels * 16, 3, 1)
......
...@@ -8,7 +8,6 @@ import torch.nn as nn ...@@ -8,7 +8,6 @@ import torch.nn as nn
import torch.nn.functional as F import torch.nn.functional as F
def smooth_BCE(eps=0.1): # https://github.com/ultralytics/yolov3/issues/238#issuecomment-598028441 def smooth_BCE(eps=0.1): # https://github.com/ultralytics/yolov3/issues/238#issuecomment-598028441
# return positive, negative label smoothing BCE targets # return positive, negative label smoothing BCE targets
return 1.0 - 0.5 * eps, 0.5 * eps return 1.0 - 0.5 * eps, 0.5 * eps
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册