当前位置: 首页 > news >正文

科技公司网站制作公司购物网站英文介绍

科技公司网站制作公司,购物网站英文介绍,百度知道山东网站建设,工作站做网站知识点#xff1a; 1.传统计算机视觉发展史#xff1a;LeNet–AlexNet–VGGNet–nceptionNet–ResNet 之所以说传统#xff0c;是因为现在主要是针对backbone-neck-head这样的范式做文章 2.inception模块和网络 3.特征融合方法阶段性总结#xff1a;逐元素…知识点 1.传统计算机视觉发展史LeNet–AlexNet–VGGNet–nceptionNet–ResNet 之所以说传统是因为现在主要是针对backbone-neck-head这样的范式做文章 2.inception模块和网络 3.特征融合方法阶段性总结逐元素相加、逐元素相乘、concat通道数增加等 4.感受野与卷积核变体深入理解不同模块和类的设计初衷 作业一次稍微有点学术感觉的作业 1.对inception网络在cifar10上观察精度 2.消融实验引入残差机制和cbam模块分别进行消融 一、 inception网络介绍 Inception 网络也被称为 GoogLeNet是 Google 团队在 2014 年提出的经典卷积神经网络架构。它的核心设计理念是 “并行的多尺度融合”通过在同一层网络中使用多个不同大小的卷积核如 1x1、3x3、5x5以及池化操作从不同尺度提取图像特征然后将这些特征进行融合从而在不增加过多计算量的情况下获得更丰富的特征表达。 Inception 模块是 Inception 网络的基本组成单元。 在同样的步长下卷积核越小下采样率越低保留的图片像素越多卷积核越大越能捕捉像素周围的信息。 一个典型的 Inception 模块包含以下几个并行的分支 1x1 卷积分支用于降维减少后续卷积操作的计算量同时提取局部特征。​像素下采样率低但是可以修改通道数3x3 卷积分支捕捉中等尺度的特征。​5x5 卷积分支捕捉较大尺度的特征。​池化分支通常使用最大池化或平均池化用于保留图像的全局信息。 二、 inception网络架构 2.1 定义inception模块 import torch import torch.nn as nnclass Inception(nn.Module):def __init__(self, in_channels):Inception模块初始化实现多尺度特征并行提取与融合参数:in_channels: 输入特征图的通道数super(Inception, self).__init__()# 1x1卷积分支降维并提取通道间特征关系# 减少后续卷积的计算量同时保留局部特征信息self.branch1x1 nn.Sequential(nn.Conv2d(in_channels, 64, kernel_size1), # 降维至64通道nn.ReLU() # 引入非线性激活)# 3x3卷积分支通过1x1卷积降维后使用3x3卷积捕捉中等尺度特征# 先降维减少计算量再进行空间特征提取self.branch3x3 nn.Sequential(nn.Conv2d(in_channels, 96, kernel_size1), # 降维至96通道nn.ReLU(),nn.Conv2d(96, 128, kernel_size3, padding1), # 3x3卷积保持空间尺寸不变nn.ReLU())# 5x5卷积分支通过1x1卷积降维后使用5x5卷积捕捉大尺度特征# 较大的感受野用于提取更全局的结构信息self.branch5x5 nn.Sequential(nn.Conv2d(in_channels, 16, kernel_size1), # 大幅降维至16通道nn.ReLU(),nn.Conv2d(16, 32, kernel_size5, padding2), # 5x5卷积保持空间尺寸不变nn.ReLU())# 池化分支通过池化操作保留全局信息并降维# 增强特征的平移不变性self.branch_pool nn.Sequential(nn.MaxPool2d(kernel_size3, stride1, padding1), # 3x3最大池化保持尺寸nn.Conv2d(in_channels, 32, kernel_size1), # 降维至32通道nn.ReLU())def forward(self, x):前向传播函数并行计算四个分支并在通道维度拼接参数:x: 输入特征图形状为[batch_size, in_channels, height, width]返回:拼接后的特征图形状为[batch_size, 256, height, width]# 注意这里是并行计算四个分支branch1x1 self.branch1x1(x) # 输出形状: [batch_size, 64, height, width]branch3x3 self.branch3x3(x) # 输出形状: [batch_size, 128, height, width]branch5x5 self.branch5x5(x) # 输出形状: [batch_size, 32, height, width]branch_pool self.branch_pool(x) # 输出形状: [batch_size, 32, height, width]# 在通道维度(dim1)拼接四个分支的输出# 总通道数: 64 128 32 32 256outputs [branch1x1, branch3x3, branch5x5, branch_pool]return torch.cat(outputs, dim1)inception模块中不同的卷积核和步长最后输出同样尺寸的特征图这是经过精心设计的才能在空间上对齐才能在维度上正确拼接concat。 2.2 特征融合方法 这里我们注意到它是对把不同尺度的特征融合在一起。concat这种增加通道数的方法是一种经典的特征融合方法。通道数增加空间尺寸H, W保持不变每个通道的数值保持独立没有加法运算。相当于把不同特征图 “并排” 放在一起形成更 “厚” 的特征矩阵。 在深度学习中特征融合的尺度有以下方式 逐元素相加将相同形状的特征图对应位置的元素直接相加比如残差连接output x self.residual_block(x)不改变特征图尺寸和通道数计算高效但需保证输入形状一致。 逐元素相乘通过乘法对特征进行权重分配抑制无关特征增强关键特征。比如注意力机制、门控机制如 LSTM 中的遗忘门、输入门例如 attention self.ChannelAttention(features) # 生成通道权重 weighted_features features * attention # 逐元素相乘2.3 InceptionNet网络定义 class InceptionNet(nn.Module):def __init__(self, num_classes10):super(InceptionNet, self).__init__()self.conv1 nn.Sequential(nn.Conv2d(3, 64, kernel_size7, stride2, padding3),nn.ReLU(),nn.MaxPool2d(kernel_size3, stride2, padding1))self.inception1 Inception(64)self.inception2 Inception(256)self.avgpool nn.AdaptiveAvgPool2d((1, 1))self.fc nn.Linear(256, num_classes)def forward(self, x):x self.conv1(x)x self.inception1(x)x self.inception2(x)x self.avgpool(x)x torch.flatten(x, 1)x self.fc(x)return xinception网络有着很多变体Inception v1版本就是 GoogLeNet他还有v2到v4还版本还可以引入残差连接如 Inception-ResNet-v2 在 ImageNet 上 top-1 准确率达 96.4% 三、卷积核的变体 3.1 感受野 我们发现经常会有不同尺寸的卷积核来在特征图上滑动进一步提取信息那么卷积核的尺寸如何选取比较合适呢在思考这个问题前你需要理解下感受野的概念。 感受野是指在卷积神经网络CNN中神经元在原始输入图像上所对应的区域大小。通俗来说卷积层中的每个输出特征图上的一个像素点其信息来源于输入图像中的某个特定区域这个区域的大小就是该像素点的感受野。 假设我们有一个 3×3 的卷积核对一张 5×5 的图像进行步长为 1 的卷积操作 输出特征图的每个像素点都由输入图像中 3×3 的区域计算得到因此该层的感受野为 3×3。 如果再叠加一层 3×3 卷积步长 1第二层的每个像素点会融合第一层 3×3 区域的信息而第一层的每个区域又对应原始图像的 3×3 区域因此第二层的感受野扩展为 5×5即 33-15 为了方便大家理解这个5怎么来的可以观看下面连接中视频方便理解 感受野的理解视频解析 所以在对应同等感受野的情况下卷积核尺寸小有2个显著的优势 能让参数变少简化计算能够引入更多的非线性多经过几次激活函数让拟合效果更好 这也是为什么像 VGG 网络就用多层 3×3 卷积核替代大卷积核平衡模型性能与复杂度 。 3.2 卷积的变体 卷积也是有很多变体的除了我们之前说过的基础的卷积还有空洞卷积、幻影卷积等等变体。我们以空洞卷积举例 空洞卷积也叫扩张卷积、膨胀卷积 是对标准卷积的 “升级”—— 在卷积核元素间插入空洞间隔用 空洞率dilation rate记为d 控制间隔大小。 标准卷积d1卷积核元素紧密排列直接覆盖输入特征图相邻区域。 空洞卷积d1卷积核元素间插入 d-1 个空洞等效扩大卷积核的 “感受野范围”但不增加参数数量仅改变计算时的采样间隔。也就是无需增大卷积核尺寸或叠加多层卷积仅通过调整 d就能指数级提升感受野。 对比池化Pooling或下采样空洞卷积不丢失空间信息能在扩大感受野的同时维持特征图尺寸特别适合语义分割、目标检测等需要精准像素 / 目标定位的任务。 所以不同的设计其实是为了不同的任务比如你虽然可以捕捉不同尺度的信息但是对于图像分类这个任务来说没用我的核心是整个图像的类别如果你是目标检测对于小目标的检测中小尺度的设计就很有用。 3.3 空洞卷积示例 代码上仅仅也是多了一个参数 self.conv2 nn.Conv2d(16, 32, kernel_size3, padding2, dilation2) 完整代码 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader# 数据预处理 transform transforms.Compose([transforms.ToTensor(), # 转为张量transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) # 归一化 ])# 加载CIFAR-10数据集 trainset torchvision.datasets.CIFAR10(root./data, trainTrue,downloadTrue, transformtransform) trainloader DataLoader(trainset, batch_size128, shuffleTrue)testset torchvision.datasets.CIFAR10(root./data, trainFalse,downloadTrue, transformtransform) testloader DataLoader(testset, batch_size128, shuffleFalse)# 定义含空洞卷积的CNN模型 class SimpleCNNWithDilation(nn.Module):def __init__(self):super(SimpleCNNWithDilation, self).__init__()# 第一层普通3×3卷积捕捉基础特征self.conv1 nn.Conv2d(3, 16, kernel_size3, padding1) # 第二层空洞卷积dilation2感受野扩大等效5×5普通卷积感受野self.conv2 nn.Conv2d(16, 32, kernel_size3, padding2, dilation2) # 第三层普通3×3卷积恢复特征对齐self.conv3 nn.Conv2d(32, 64, kernel_size3, padding1) self.pool nn.MaxPool2d(2, 2) # 池化层self.relu nn.ReLU()# 全连接层根据CIFAR-10尺寸计算32×32→池化后16×16→...→最终特征维度需匹配self.fc1 nn.Linear(64 * 8 * 8, 256) self.fc2 nn.Linear(256, 10) def forward(self, x):# 输入: [batch, 3, 32, 32]x self.conv1(x) # [batch, 16, 32, 32]x self.relu(x)x self.pool(x) # [batch, 16, 16, 16]x self.conv2(x) # [batch, 32, 16, 16]dilation2 padding2 保持尺寸x self.relu(x)x self.pool(x) # [batch, 32, 8, 8]x self.conv3(x) # [batch, 64, 8, 8]x self.relu(x)x x.view(-1, 64 * 8 * 8) # 展平x self.fc1(x)x self.relu(x)x self.fc2(x)return x# 初始化模型、损失函数、优化器 device torch.device(cuda if torch.cuda.is_available() else cpu) model SimpleCNNWithDilation().to(device) criterion nn.CrossEntropyLoss() optimizer torch.optim.Adam(model.parameters(), lr0.001)# 训练函数 def train(epoch):model.train()running_loss 0.0for i, data in enumerate(trainloader, 0):inputs, labels data[0].to(device), data[1].to(device)optimizer.zero_grad()outputs model(inputs)loss criterion(outputs, labels)loss.backward()optimizer.step()running_loss loss.item()if i % 100 99: # 每100个batch打印一次print(fEpoch: {epoch 1}, Batch: {i 1}, Loss: {running_loss / 100:.3f})running_loss 0.0# 测试函数 def test():model.eval()correct 0total 0with torch.no_grad():for data in testloader:images, labels data[0].to(device), data[1].to(device)outputs model(images)_, predicted torch.max(outputs.data, 1)total labels.size(0)correct (predicted labels).sum().item()print(fAccuracy on test set: {100 * correct / total:.2f}%)# 训练测试流程 for epoch in range(5): # 简单跑5个epoch示例train(epoch)test()
http://www.hkea.cn/news/14388496/

相关文章:

  • 中高端网站建设公司都兰县公司网站建设
  • 广州做网站哪家好公司怎么做电影网站吗
  • 电商网站项目建设上海营销平台网站建设
  • 厦门网站建设优化网站开发相关知识
  • 农林网站建设公司网络营销实施计划
  • 网络营销的策划方案外包网络优化
  • 宁波模板建站哪家好查网站排名
  • 南京网站seo建设网站费用记什么科目
  • 装修公司网站 源码海阔淘宝客助手wordpress演示站 | 紫色清新商城模板
  • 青海建设厅职称网站建设协会网站的公司
  • 大连专业网站建设百度ai智能搜索引擎
  • 工程建设网站策划方案广东建设厅证件查询网站
  • 外贸公司 网站自己怎么做wap网站
  • 百度公司网站推广怎么做做招聘海报的网站
  • 郑州pc网站开发湖北省工程建设信息官方网站
  • 佛山北京网站建设公司哪家好025网站建设
  • 医院网站可以自己做吗wordpress怎么压缩
  • 河南国安建设集团有限公司网站可以显示文章列表的wordpress主题
  • 邢台建设专业网站宿州网站建设电话
  • 网站标题第一个词wordpress仿站js如何导入
  • 建设银行u盾用网站打不开汽车网站建设费用
  • 简述营销网站建设策略网站怎么营销
  • 嘉兴网站托管渭南 网站建设
  • 正邦做网站吗wordpress数字链接出现404
  • 律师网站建设案例活动页面模板
  • seo品牌优化百度资源网站推广关键词排名做国际网站花钱吗
  • 网站建设的基本要素网站前置或专项审批
  • 长春网站制作教程wordpress oa 插件
  • 购物网站建设咨询网站组成元素
  • 旅游网站开发的意义相关资料直播电商平台开发