class small_basic_block(nn.Module): def __init__(self, ch_in, ch_out): super(small_basic_block, self).__init__() self.block = nn.Sequential( nn.Conv2d(ch_in, ch_out // 4, kernel_size=1), # 1x1的average pooling,降维和减少参数 # 下面经过3x1和1x3卷积的学习 [替代3x3卷积],然后再进行升维 nn.ReLU(), nn.Conv2d(ch_out // 4, ch_out // 4, kernel_size=(3, 1), padding=(1, 0)), nn.ReLU(), nn.Conv2d(ch_out // 4, ch_out // 4, kernel_size=(1, 3), padding=(0, 1)), nn.ReLU(), nn.Conv2d(ch_out // 4, ch_out, kernel_size=1), ) def forward(self, x): return self.block(x)
时间: 2023-04-05 14:05:05 浏览: 94
Python RuntimeError: thread.__init__() not called解决方法
这是一个继承自nn.Module的小型基本块类,它有两个参数ch_in和ch_out,分别表示输入通道数和输出通道数。在初始化函数中,它首先调用父类的初始化函数,然后定义了一个nn.Sequential序列,其中包含一个1x1的卷积层,输入通道数为ch_in,输出通道数为ch_out除以4。
阅读全文