LeNet-1D-V 模型架构详解

本文将详细介绍 LeNet-1D-V 模型的架构,并分析其各个组件的作用。LeNet-1D-V 是一个符合 V 要求的模型,它包含了八个卷积层 (Conv),三个平均池化层 (Avg-pool),一个全局平均池化层 (GAP) 和一个全连接层 (FC)。

模型架构

import torch.nn as nn

class LeNet_1D_V(nn.Module):
    def __init__(self):
        super(LeNet_1D_V, self).__init__()
        self.conv1 = nn.Sequential(
            nn.Conv1d(1, 5, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.conv2 = nn.Sequential(
            nn.Conv1d(5, 10, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.conv3 = nn.Sequential(
            nn.Conv1d(10, 15, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.conv4 = nn.Sequential(
            nn.Conv1d(15, 20, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.conv5 = nn.Sequential(
            nn.Conv1d(20, 25, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.conv6 = nn.Sequential(
            nn.Conv1d(25, 30, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.conv7 = nn.Sequential(
            nn.Conv1d(30, 35, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.conv8 = nn.Sequential(
            nn.Conv1d(35, 40, kernel_size=3, stride=1, padding=1),
            nn.Mish()
        )
        self.avgpool = nn.AvgPool1d(kernel_size=2, stride=1)
        self.global_avgpool = nn.AdaptiveAvgPool1d(1)
        self.fc = nn.Linear(40, 6)
        self.softmax = nn.Softmax(dim=1)
        self.loss_fn = nn.CrossEntropyLoss()

    def forward(self, x):
        x = self.conv1(x)
        x = self.avgpool(x)
        x = self.conv2(x)
        x = self.avgpool(x)
        x = self.conv3(x)
        x = self.avgpool(x)
        x = self.conv4(x)
        x = self.avgpool(x)
        x = self.conv5(x)
        x = self.avgpool(x)
        x = self.conv6(x)
        x = self.avgpool(x)
        x = self.conv7(x)
        x = self.avgpool(x)
        x = self.conv8(x)
        x = self.global_avgpool(x)
        x = x.view(x.size(0), -1)
        feature = x
        x = self.fc(x)
        output = self.softmax(x)
        if target is not None:
            loss = self.loss_fn(output, target)
            return feature, output, loss
        else:
            return feature, output

model = LeNet_1D_V()
print(model)

模型特点

  • 卷积层 (Conv):八个卷积层,每层使用 3*1 的卷积核,并使用 Mish 函数作为激活函数。第一层卷积层的输出通道数为 5,后续各层输出通道数依次递增。
  • 平均池化层 (Avg-pool):三个平均池化层,使用 2*1 的池化核。
  • 全局平均池化层 (GAP):将特征图缩减至一个向量,用于提取全局特征。
  • 全连接层 (FC):将特征向量映射到 6 个类别,并使用 Softmax 函数进行分类。
  • 损失函数:使用交叉熵函数作为多分类损失函数。

总结

LeNet-1D-V 模型是一个简单的卷积神经网络,其结构设计简洁明了。模型的八个卷积层和三个平均池化层能够有效地提取输入数据的特征,全局平均池化层则可以提取全局特征,最终全连接层进行分类。该模型在图像分类、语音识别等领域具有较好的应用前景。

站长合作邮箱:wxgpt@qq.com


原文地址: https://www.cveoy.top/t/topic/b9xh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录