LeNet-1D-V 模型代码:包含 8 个卷积层、7 个平均池化层、一个全局平均池化层和一个全连接层
import torch.nn as nn
class LeNet1D_V(nn.Module): def init(self): super(LeNet1D_V, self).init() self.conv1 = nn.Sequential( # input shape (1, 10000, 12) nn.Conv2d( in_channels=1, # input height out_channels=8, # n_filters kernel_size=(3, 1), # filter size stride=(1, 1), # filter movement/step padding=(1, 0), ), nn.ReLU(), nn.AvgPool2d(kernel_size=(2, 1), stride=(2, 1)), ) self.conv2 = nn.Sequential( # input shape (8, 5000, 12) nn.Conv2d( in_channels=8, # input height out_channels=16, # n_filters kernel_size=(3, 1), # filter size stride=(1, 1), # filter movement/step padding=(1, 0), ), nn.ReLU(), nn.AvgPool2d(kernel_size=(2, 1), stride=(2, 1)), ) self.conv3 = nn.Sequential( # input shape (16, 2500, 12) nn.Conv2d( in_channels=16, # input height out_channels=32, # n_filters kernel_size=(3, 1), # filter size stride=(1, 1), # filter movement/step padding=(1, 0), ), nn.ReLU(), nn.AvgPool2d(kernel_size=(2, 1), stride=(2, 1)), ) self.conv4 = nn.Sequential( # input shape (32, 1250, 12) nn.Conv2d( in_channels=32, # input height out_channels=64, # n_filters kernel_size=(3, 1), # filter size stride=(1, 1), # filter movement/step padding=(1, 0), ), nn.ReLU(), nn.AvgPool2d(kernel_size=(2, 1), stride=(2, 1)), ) self.conv5 = nn.Sequential( # input shape (64, 625, 12) nn.Conv2d( in_channels=64, # input height out_channels=128, # n_filters kernel_size=(3, 1), # filter size stride=(1, 1), # filter movement/step padding=(1, 0), ), nn.ReLU(), nn.AvgPool2d(kernel_size=(2, 1), stride=(2, 1)), ) self.conv6 = nn.Sequential( # input shape (128, 312, 12) nn.Conv2d( in_channels=128, # input height out_channels=256, # n_filters kernel_size=(3, 1), # filter size stride=(1, 1), # filter movement/step padding=(1, 0), ), nn.ReLU(), nn.AvgPool2d(kernel_size=(2, 1), stride=(2, 1)), ) self.conv7 = nn.Sequential( # input shape (256, 156, 12) nn.Conv2d( in_channels=256, # input height out_channels=512, # n_filters kernel_size=(3, 1), # filter size stride=(1, 1), # filter movement/step padding=(1, 0), ), nn.ReLU(), nn.AvgPool2d(kernel_size=(2, 1), stride=(2, 1)), ) self.global_avg_pool = nn.AdaptiveAvgPool2d((1, 1)) self.fc = nn.Linear(512, 6)
def forward(self, x):
x = self.conv1(x)
x = self.conv2(x)
x = self.conv3(x)
x = self.conv4(x)
x = self.conv5(x)
x = self.conv6(x)
x = self.conv7(x)
x = self.global_avg_pool(x)
x = x.view(x.size(0), -1)
feature = x
output = self.fc(x)
return feature, output
原文地址: https://www.cveoy.top/t/topic/pi7T 著作权归作者所有。请勿转载和采集!