织梦电影网站模板下载,常见的微信营销方式有哪些,网站设计的主要特点,本机iis发布网站后台管理在深度学习领域#xff0c;不同的网络结构设计用于解决特定的问题。本文将详细分析四种主流网络结构#xff1a;卷积神经网络#xff08;CNN#xff09;、残差网络#xff08;ResNet#xff09;、长短期记忆网络#xff08;LSTM#xff09;和洗牌网络#xff08;Shuff…在深度学习领域不同的网络结构设计用于解决特定的问题。本文将详细分析四种主流网络结构卷积神经网络CNN、残差网络ResNet、长短期记忆网络LSTM和洗牌网络ShuffleNet并通过实际的实验来分析一下这四种网络结构对于Daily_and_Sports_Activities数据集的实验仿真效果。 要在文章一开始配合图例的方式更具体地介绍数据集和实验目标可以采用以下结构 一、Daily_and_Sports_Activities数据集与实验目标
1.1 Daily_and_Sports_Activities数据集简介
Daily_and_Sports_Activities数据集包含了19类日常活动和体育活动的图像旨在训练和测试深度学习模型对不同活动类型的识别能力。
并且数据集中的图像经过预处理都变成了包含有各种动作信息的坐标方便我们去进行进一步的实验分析
1.2 实验目标
我们的目标是评估和比较四种不同的深度学习网络结构在处理同一数据集时的性能。具体来说我们将关注以下几个关键指标
准确率Accuracy模型正确分类的图像比例。精确率Precision在所有预测为正的图像中真正为正的比例。召回率Recall在所有实际为正的图像中被正确预测为正的比例。F1分数F1-score精确率和召回率的调和平均值衡量模型在精确度和召回率之间的平衡。参数量Parameter模型中的总参数数量影响模型的复杂度和计算资源需求。推理时间Inference Time模型对单个图像进行预测所需的时间反映模型的实时处理能力。
二、四种网络结构对比分析
1.CNNConvolutional Neural Network
CNN 是深度学习中用于处理具有网格结构的数据如图像的网络结构卷积神经网络的基本结构大致包括卷积层、激活函数、池化层、全连接层、输出层
更具体来看
网络代码实现
class CNN(nn.Module):def __init__(self, train_shape, category):super(CNN, self).__init__()# 构建卷积层、批量归一化层和ReLU激活函数的序列self.layer nn.Sequential(# 卷积层的参数输入通道、输出通道、卷积核大小、步长、填充nn.Conv2d(1, 64, (3, 1), (2, 1), (1, 0)),nn.BatchNorm2d(64),nn.ReLU(),# 更多卷积层...)# 自适应平均池化层和全连接层self.ada_pool nn.AdaptiveAvgPool2d((1, train_shape[-1]))self.fc nn.Linear(512*train_shape[-1], category)特点分析
局部连接每个卷积神经元只与输入数据的一个局部区域相连接这减少了计算量。权重共享卷积核的权重在整个输入数据上共享进一步减少模型参数。层次结构通过多层结构CNN能够学习从简单到复杂的特征表示。自动提取特征无需手动设计特征提取器CNN能够自动学习数据中的特征。
2.ResNetResidual Neural Network 残差网络是一种深度学习模型通过引入“残差学习”的概念来解决深度神经网络训练困难的问题。ResNet 通过引入残差学习解决了深层网络训练中的梯度消失问题。
class Block(nn.Module):def __init__(self, inchannel, outchannel, stride):super().__init__()# 构建残差块self.block nn.Sequential(nn.Conv2d(inchannel, outchannel, (3, 1), (stride, 1), (1, 0)),# 更多层...)# 残差连接self.short nn.Sequential()if (inchannel ! outchannel or stride ! 1):self.short nn.Sequential(nn.Conv2d(inchannel, outchannel, (3, 1), (stride, 1), (1, 0)),)输入通过一个或多个卷积层后与输入相加形成残差。这样做可以使得网络学习到的是输入和输出之间的残差而不是直接学习输出从而缓解了梯度消失问题使得网络可以成功训练更深的模型。
特点分析
残差连接通过添加输入到输出允许梯度更有效地传播到前面的层。简化训练残差连接使得网络可以训练得更深而不会出现梯度消失或爆炸的问题。恒等映射在某些情况下网络层可以学习到恒等映射这有助于网络学习更复杂的函数。
3.LSTMLong Short-Term Memory
LSTM 是一种特殊的 RNN设计用来解决长序列数据中的梯度消失问题。
class LSTM(nn.Module):def __init__(self, train_shape, category):super().__init__()# 构建LSTM层self.lstm nn.LSTM(train_shape[-1], 512, 2, batch_firstTrue)# 全连接层self.fc nn.Linear(512, category)特点分析
门控机制包含输入门、遗忘门和输出门控制信息的流动使得网络能够学习长期依赖。序列处理LSTM能够处理序列数据适用于时间序列预测、语言模型等任务。记忆能力LSTM的单元状态可以跨越时间步骤进行信息传递这使得网络能够记住长期信息。
4.ShuffleNet洗牌网络
ShuffleNet 是一种轻量级的 CNN设计用于移动和嵌入式设备它通过使用分组卷积和通道洗牌操作来减少计算量同时保持了较高的准确率。
分组卷积将输入通道分成多个组每组独立进行卷积操作然后合并结果。这样可以减少计算量和参数数量。
通道洗牌在分组卷积后通过通道洗牌操作重新混合不同组的特征图以保持特征的多样性。
class ChannelShuffleModule(nn.Module):def __init__(self, channels, groups):super().__init__()# 通道混合模块特点分析
深度可分离卷积减少了模型的计算量和参数数量。通道混合通过重组通道提高了模型的表达能力同时保持了计算效率。轻量化设计ShuffleNet通过特定的设计减少了模型的复杂性适用于计算资源受限的环境。
5.总结
每种网络结构都有其特定的优势和适用场景CNN 提供了一种强大的特征提取方法适用于图像识别等领域。ResNet 通过残差连接解决了深层网络的训练难题。LSTM 以其门控机制在序列数据处理方面表现出色。ShuffleNet 则是一种为移动和嵌入式设备设计的轻量级网络。在设计深度学习模型时需要根据任务的具体需求、数据的特性以及可用的计算资源来选择最合适的网络结构接下来我们将进行实际的实验训练来分析一下这四种网络结构对于Daily_and_Sports_Activities数据集仿真实验。
三、具体的实验仿真和对比
在对Daily_and_Sports_Activities数据集进行的实验中我们对比了CNN、ResNet、LSTM和ShuffleNet四种网络结构的性能。
Daily_and_Sports_Activities 数据集训练方法概述
训练Daily_and_Sports_Activities数据集涉及几个关键步骤包括数据预处理、模型选择、训练配置、训练执行以及评估以下是我们整个流程的概述 环境搭建导入所需的库包括PyTorch、NumPy、os等并设置工作目录。 参数解析使用argparse库解析命令行参数设置数据集、模型、保存路径、批量大小、训练周期数和学习率等。 数据集和模型定义定义数据集和模型的字典便于选择不同的数据集处理类和模型架构。 参数处理和设备配置根据参数设置数据保存路径、选择计算设备GPU或CPU。 数据加载和预处理加载数据集如果.npy格式的数据已存在则直接加载否则进行数据预处理并保存。 张量转换将数据和标签转换为PyTorch张量为模型训练做准备。 模型实例化根据选择的模型架构实例化模型对象。 数据加载器创建训练和测试的DataLoader用于批量加载数据。 配置优化器和损失函数设置AdamW优化器、学习率调度器和交叉熵损失函数。 训练执行进行训练循环包括前向传播、损失计算、反向传播和参数更新。 评估在每个周期结束时在测试集上评估模型性能计算准确率、精确度、召回率和F1分数。 结果记录打印输出训练和测试结果记录模型性能。
整个过程记录我们自己的模型训练和评估的流程具体的代码太过于多就不展示了需要可以联系我获取。
1.1 CNN网络结构 1.2 训练结果 2.1 ResNet网络结构 2.2 训练结果 3.1 LSTM网络结构 3.2 训练结果
4.1 shufflenet网络结构 4.2 训练结果 四、实验结果分析
将四种模型得到的训练结果写入表格中得到了如下图所示的结果分别对其 准确率(Accuracy)、精确率(Precision) 、召回率(Recall) 、F1分数(F1-score)、参数量(Parameters)和推理时间(Inference Time) 进行分析和对比
1.实验结果概览
模型名准确率(Accuracy)精确率(Precision)召回率(Recall)F1分数(F1-score)参数量(Parameter)推理时间(Inference Time)CNN0.87930.91600.87930.89739569471.3570ResNet0.87240.91940.87340.895315027373.3007LSTM0.80300.82440.80300.813633940652.7796ShuffleNet0.87160.90790.87160.889411603411.7889
2.分析与总结
2.1准确率与召回率
CNN 在准确率上表现最佳达到了0.8793其次是ResNet准确率为0.8724。这表明CNN在分类任务上具有较好的总体性能。LSTM 的准确率和召回率较低分别为0.8030这可能与其处理时间序列数据的特性有关而DASA数据集可能不完全适合LSTM的结构。
2.2精确率与F1分数
ResNet 在精确度上表现最佳达到了0.9194这表明其在预测时具有较高的置信度。CNN 和 ResNet 的F1分数接近分别为0.8973和0.8953说明两者在精确度和召回率之间取得了较好的平衡。
2.3参数量
LSTM 拥有最多的参数达到了3394065这可能是由于其复杂的门控机制导致的。ResNet 由于其深层结构参数量也较多为1502737。ShuffleNet 和 CNN 的参数量相对较少分别为1160341和956947这使得它们在计算资源受限的环境中更具优势。
2.4推理时间
CNN 的推理时间最短为1.3570秒这与其较少的参数量和高效的卷积运算有关。LSTM 的推理时间最长为2.7796秒这可能是因为其处理序列数据的循环特性导致计算成本较高。ShuffleNet 的推理时间为1.7889秒介于CNN和LSTM之间。
3.个人观点
从实验结果来看CNN和ResNet在准确率和精确度上表现较为突出这可能是因为它们能够有效地捕捉图像特征并且ResNet的残差连接有助于训练更深的网络。LSTM虽然在参数量上最多但在该数据集上的表现并不理想可能是因为DASA数据集并不完全是序列数据LSTM的优势在于处理长序列依赖关系而DASA数据集的特点可能并未充分发挥这一优势。
ShuffleNet在推理时间上表现良好这表明它在需要快速推理的应用场景中可能是一个不错的选择。同时它的参数量和准确率也相对平衡适合资源受限的设备。
综上所述选择哪种网络结构应根据具体的应用场景和需求来决定。如果需要快速推理并且对准确率有一定要求CNN或ShuffleNet可能是更好的选择如果需要构建深层网络并且对精确度有较高要求ResNet可能更合适而LSTM可能更适合那些具有明显时间序列特性的数据集。