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

深圳市专业做网站中国临海门户网站工程建设

深圳市专业做网站,中国临海门户网站工程建设,网站建设深圳公司哪家好,企业网站的开发公司1 简介 在PyTorch深度学习中#xff0c;预训练backbone#xff08;骨干网络#xff09;是一个常见的做法#xff0c;特别是在处理图像识别、目标检测、图像分割等任务时。预训练backbone通常是指在大型数据集#xff08;如ImageNet#xff09;上预先训练好的卷积神经网络…1 简介 在PyTorch深度学习中预训练backbone骨干网络是一个常见的做法特别是在处理图像识别、目标检测、图像分割等任务时。预训练backbone通常是指在大型数据集如ImageNet上预先训练好的卷积神经网络CNN模型这些模型能够提取图像中的通用特征这些特征在多种任务中都是有用的。 1. 常见的预训练Backbone 以下是一些在PyTorch中常用的预训练backbone ResNet由何恺明等人提出的深度残差网络通过引入残差连接解决了深层网络训练中的梯度消失或梯度爆炸问题。ResNet系列包括ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152等数字表示网络的层数。VGG由牛津大学的Visual Geometry Group提出特点是使用了多个小卷积核如3x3的卷积层和池化层来构建深层网络。VGG系列包括VGG16、VGG19等。MobileNet专为移动和嵌入式设备设计的轻量级网络通过深度可分离卷积减少了计算量和模型大小。DenseNet通过密集连接dense connections提高了信息流动和梯度传播效率进一步增强了特征重用。EfficientNet通过同时缩放网络的深度、宽度和分辨率来优化网络实现了在保持模型效率的同时提高准确率。 2. 如何使用预训练Backbone 在PyTorch中使用预训练backbone通常涉及以下几个步骤 导入模型使用PyTorch的torchvision.models模块导入所需的预训练模型。 import torchvision.models as models # 导入预训练的ResNet50模型 resnet50 models.resnet50(pretrainedTrue) print(resnet50) 修改模型根据需要修改模型的最后几层以适应特定的任务如分类任务中的类别数。 # 假设我们有一个100类的分类任务 num_ftrs resnet50.fc.in_features resnet50.fc torch.nn.Linear(num_ftrs, 100) 冻结backbone在训练时可以选择冻结backbone的参数只训练新添加的层如分类层这有助于加快训练速度并防止过拟合。 for param in resnet50.parameters(): param.requires_grad False # 只对新添加的层设置requires_gradTrue resnet50.fc.parameters().requires_grad True 训练模型使用适当的数据集和训练策略来训练模型。 评估模型在测试集上评估模型的性能。 3. 注意事项 使用预训练权重时应确保输入图像的预处理如大小调整、归一化等与预训练时使用的预处理一致。冻结backbone时应确保模型的其余部分如新添加的层有足够的容量来学习任务特定的特征。在某些情况下解冻backbone的一部分或全部并在目标数据集上进行微调可能会获得更好的性能。 通过以上步骤可以在PyTorch中有效地利用预训练backbone来解决各种计算机视觉任务。 2 查看模型源码 想查看models.resnet50的源码可以点击查看pytorch中的官方注释可以看到源码链接为 vision/torchvision/models/resnet.py at main · pytorch/vision · GitHub 这样就可以看到 class ResNet(nn.Module) 的定义 3 查看权重参数 在PyTorch中查看深度学习预训练backbone的权重参数可以通过几种方法实现。以下是一些常用的步骤和方法 1. 加载预训练模型 首先你需要使用torchvision.models模块加载所需的预训练模型。例如加载一个预训练的ResNet50模型 import torchvision.models as models # 加载预训练的ResNet50模型 resnet50 models.resnet50(pretrainedTrue) 2. 查看模型参数 方法一使用model.parameters() model.parameters()方法返回一个生成器包含模型的所有参数权重和偏置。但是这个方法不会直接显示参数的名称只适合在训练循环中迭代参数。 方法二使用model.named_parameters() model.named_parameters()方法返回一个生成器其中每个元素都是一个包含参数名称和参数本身的元组。这是查看模型每层权重参数及其名称的最直接方法。 for name, param in resnet50.named_parameters(): print(name, param.size()) 这段代码会遍历模型的所有参数并打印出每个参数的名称和尺寸。 3. 专注于特定层的参数 如果你只对backbone中的特定层感兴趣可以进一步筛选named_parameters()的输出。例如如果你想看ResNet50中第一个卷积层的参数 for name, param in resnet50.named_parameters(): if conv1 in name: print(name, param.size()) 4. 注意事项 当查看模型参数时请确保你了解模型的架构以便正确地解释参数的名称和尺寸。预训练模型的权重是在特定数据集如ImageNet上训练的因此这些权重可能对你的特定任务有所帮助但也可能需要进一步的微调。如果你的模型是基于预训练模型进行修改的例如更改了最后一层以匹配不同的类别数请确保你理解这些修改如何影响模型的参数。 5. 示例输出 运行上述代码针对ResNet50的named_parameters()将输出类似以下的信息输出将非常长这里只展示部分 conv1.weight torch.Size([64, 3, 7, 7]) conv1.bias torch.Size([64]) bn1.weight torch.Size([64]) bn1.bias torch.Size([64]) bn1.running_mean torch.Size([64]) bn1.running_var torch.Size([64]) ... 这表示conv1层有一个权重参数大小为[64, 3, 7, 7]和一个偏置参数大小为[64]以及对应的批量归一化层的权重、偏置、运行均值和运行方差等参数。 4 常见bakcbone以及适用业务 在PyTorch中预训练的backbone模型是深度学习领域中的重要组成部分它们为各种任务提供了强大的特征提取能力。然而由于PyTorch本身是一个灵活的深度学习框架它并不直接提供所有可能的预训练backbone模型而是由社区和研究者基于PyTorch框架实现并分享。以下是一些常见的PyTorch预训练backbone模型以及它们的优劣和适用场景 1. ResNet残差网络 优势 引入了残差连接解决了深层网络训练中的梯度消失或梯度爆炸问题。在多个计算机视觉任务中表现出色如图像分类、目标检测等。 劣势 对于某些特定任务可能不是最优选择需要根据任务特点进行调整。 适用场景 图像分类、目标检测、语义分割等。 2. VGG 优势 结构简单明了易于理解和实现。在多个基准数据集上取得了良好的性能。 劣势 参数量较大计算成本较高。 适用场景 早期深度学习研究和教学。 3. MobileNet 优势 专为移动和嵌入式设备设计具有较小的模型大小和较快的推理速度。采用了深度可分离卷积等技术减少了计算量和参数量。 劣势 相比于其他大型模型可能在某些复杂任务上的精度稍低。 适用场景 移动应用、嵌入式设备上的实时图像处理和分类。 4. DenseNet密集连接网络 优势 每一层都直接与后面的所有层相连增强了特征传播和复用。在多个数据集上取得了比ResNet更好的性能。 劣势 参数量和计算量相对较大。 适用场景 需要高精度和强特征表达能力的任务如医学图像分析。 5. EfficientNet 优势 通过复合缩放方法compound scaling平衡了网络的深度、宽度和分辨率实现了在有限资源下的最佳性能。在多个计算机视觉任务中取得了SOTAstate-of-the-art性能。 劣势 需要根据具体任务进行微调以获得最佳性能。 适用场景 追求极致性能的计算机视觉任务如大规模图像分类和检测。 6. YOLOv5的Backbone如CSPDarknet 优势 专为目标检测任务设计具有较快的推理速度和较高的检测精度。采用了CSPNet等结构进一步提升了网络性能。 劣势 相比于专门的分类网络可能在分类任务上的性能稍逊。 适用场景 实时目标检测任务如自动驾驶、视频监控等。 请注意以上列举的backbone模型并不全面PyTorch社区和研究者们不断在推出新的模型和架构。此外每种模型都有其特定的优势和劣势以及适用的场景。在选择模型时需要根据具体任务的需求、计算资源等因素进行综合考虑。 对于PyTorch中预训练backbone模型的获取可以通过PyTorch的官方模型库如torchvision或第三方库如timm、pretrainedmodels等来获取。这些库提供了大量预训练的backbone模型并支持多种加载和使用方式。 5 从backbone提取特征图(☆) import torch import torch.nn as nn import torchvision.models as models from collections import OrderedDictclass ResNet18(nn.Module):def __init__(self):super().__init__()self.resnet18 models.resnet18(pretrainedTrue)def forward(self, x):features OrderedDict()x self.resnet18.conv1(x)x self.resnet18.bn1(x)x self.resnet18.relu(x)x self.resnet18.maxpool(x)features[3] xx self.resnet18.layer1(x)x self.resnet18.layer2(x)features[2] xx self.resnet18.layer3(x)features[1] xx self.resnet18.layer4(x)features[0] xreturn featuresmodel ResNet18() input torch.ones(1, 3, 640, 640) # NCHW y model(input) for key, value in y.items():print(key, value.shape)打印信息 3 torch.Size([1, 64, 160, 160]) 2 torch.Size([1, 128, 80, 80]) 1 torch.Size([1, 256, 40, 40]) 0 torch.Size([1, 512, 20, 20])
http://www.hkea.cn/news/14470507/

相关文章:

  • 国外建设工程网站2345网址导航高级版
  • 下一页p30深圳seo优化公司搜索引擎优化方案
  • 最流行的网站开发保密和档案网站建设方案
  • 网站 网页区别是什么龙川网站建设
  • 网站建设的优势是什么意思微信借口的网站怎么做
  • 建设网站进行商品营销的重要性开源cms管理系统
  • 网站导航条制作市住房和城乡建设局网站大连
  • 承德建站公司编程培训班学费找极客时间
  • 给网站做绝对路径优化wordpress搜索结果
  • 手机怎么做微电影网站wordpress 前端编辑器
  • 承德建设银行网站网站的建设需要数据库
  • 巨鹿网站建设网络公司开发专业网站
  • c 网站开发涪陵网站建设公司
  • 沈阳网站开发公司电话莱芜都市网二手房
  • 如何用 ftp上传网站wordpress手机全部显示
  • 免费设计logo网站有哪些网站建设 6万
  • 网站软文推广网站企业员工培训课程内容
  • 什么样的公司需要做网站敬请期待换个说法
  • apache建立多个网站网站开发需要准备什么
  • 视频制作哪里可以学站长seo查询
  • 吉林省网站建设行业需求分析wordpress做采集站
  • 中国深圳航空公司官方网站软装设计素材网站
  • 南京做网站南京乐识好半厘米wordpress
  • 网站建设天乐大厦wordpress小型商城
  • html做网站需要服务器吗西安网站建设麦欧科技
  • 网站建设项目描述范文翻译网站模板
  • wordpress网站关闭做淘宝客网站需要什么
  • 新网站一般建设空间大小传奇 网游
  • 网站建设设计维片房产网站建设方案项目书
  • 北京定制网站公司wordpress空两格