当前位置: 首页> 汽车> 时评 > 社区团购系统开发_模板网站制作怎么样_排名优化价格_百度快照优化seo

社区团购系统开发_模板网站制作怎么样_排名优化价格_百度快照优化seo

时间:2025/7/10 17:18:13来源:https://blog.csdn.net/2301_79556402/article/details/146891690 浏览次数: 0次
社区团购系统开发_模板网站制作怎么样_排名优化价格_百度快照优化seo

文章目录

  • 前言
  • 一、残差块(ResidualBlock)类
  • 二、卷积神经网络(CNNModule)类
  • 三、具体计算过程
    • 3.1第一个卷积模块
      • 3.1.1卷积层 self.conv1
      • 3.1.2批量归一化层 self.norm1
      • 3.1.3激活函数层 self.relu1
      • 3.1.4最大池化层 self.pool1
    • 3.2第一个残差块和池化层
      • 3.2.1残差块 self.res_block1
      • 3.2.2平均池化层 self.pool2
    • 3.3第二个残差块和池化层
      • 3.3.1残差块 self.res_block2
      • 3.3.2最大池化层 self.pool3
    • 3.4第二个卷积模块
      • 3.4.1卷积层 self.conv2
      • 3.4.2批量归一化层 self.norm2
      • 3.4.3激活函数层 self.relu2
      • 3.4.4平均池化层 self.pool4
    • 3.5Dropout 层和全局平均池化
      • 3.5.1Dropout 层 self.dropout
      • 3.5.2全局平均池化 torch.mean(x, dim=2)
    • 3.6全连接层
      • 3.6.1全连接层 self.fc
  • 四、输出结果


前言

本文简单介绍了,Pytorch框架下的一款深度学习网络框架的配置。


一、残差块(ResidualBlock)类

class ResidualBlock(nn.Module):def __init__(self, in_channels, out_channels, stride=1):super(ResidualBlock, self).__init__()self.conv1 = nn.Conv1d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1)self.norm1 = nn.BatchNorm1d(out_channels)self.relu = nn.LeakyReLU()self.conv2 = nn.Conv1d(out_channels, out_channels, kernel_size=3, stride=1, padding=1)self.norm2 = nn.BatchNorm1d(out_channels)self.shortcut = nn.Sequential()if stride != 1 or in_channels != out_channels:self.shortcut = nn.Sequential(nn.Conv1d(in_channels, out_channels, kernel_size=1, stride=stride),nn.BatchNorm1d(out_channels))
__init__ 方法
super(ResidualBlock, self).__init__():调用父类 nn.Module 的构造函数,确保正确初始化。
self.conv1 = nn.Conv1d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1):定义第一个一维卷积层。in_channels 是输入的通道数,out_channels 是输出的通道数,kernel_size=3 表示卷积核的大小为 3,stride 是步长,padding=1 表示在输入的两侧各填充 1 个单位,以保持输出的长度与输入相同(当 stride=1 时)。
self.norm1 = nn.BatchNorm1d(out_channels):定义第一个批量归一化层,用于加速训练和提高模型的稳定性,对 out_channels 个通道进行归一化操作。
self.relu = nn.LeakyReLU():定义一个 LeakyReLU 激活函数,用于引入非线性。
self.conv2 = nn.Conv1d(out_channels, out_channels, kernel_size=3, stride=1, padding=1):定义第二个一维卷积层,输入和输出的通道数相同,卷积核大小为 3,步长为 1,填充为 1。
self.norm2 = nn.BatchNorm1d(out_channels):定义第二个批量归一化层。
self.shortcut = nn.Sequential():初始化一个空的序列模块,用于残差连接。
if stride != 1 or in_channels != out_channels::如果步长不等于 1 或者输入通道数不等于输出通道数,需要对输入进行调整,使其能够与卷积层的输出相加。
self.shortcut = nn.Sequential(nn.Conv1d(in_channels, out_channels, kernel_size=1, stride=stride), nn.BatchNorm1d(out_channels)):定义一个 1x1 卷积层和一个批量归一化层,用于调整输入的通道数和长度。
   def forward(self, x):out = self.relu(self.norm1(self.conv1(x)))out = self.norm2(self.conv2(out))out += self.shortcut(x)out = self.relu(out)return out
forward 方法
out = self.relu(self.norm1(self.conv1(x))):输入 x 首先经过第一个卷积层 self
关键字:社区团购系统开发_模板网站制作怎么样_排名优化价格_百度快照优化seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: