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

BaseLine与BackBone

一、BaseLine的含义

BaseLine是能完成某项任务的基本方法,Baseline 追求 “简单、能跑通、性能可衡量”,不需要复杂结构,核心是给后续优化提供 “参考基准”。 比如我们设计一个极简的卷积网络作为 Baseline:

import torch
import torch.nn as nn# Baseline 网络(完整的分类模型,包含特征提取+任务输出)
class MNIST_Baseline(nn.Module):def __init__(self, num_classes=10):super().__init__()# ① 特征提取部分(这部分其实就是这个 Baseline 里的“简易 Backbone”)self.feature_extractor = nn.Sequential(nn.Conv2d(1, 16, kernel_size=3, padding=1),  # 1通道(灰度图)→16通道nn.ReLU(),nn.MaxPool2d(2, 2),  # 尺寸 28×28→14×14nn.Conv2d(16, 32, kernel_size=3, padding=1),  # 16→32通道nn.ReLU(),nn.MaxPool2d(2, 2)   # 尺寸 14×14→7×7)# ② 任务输出部分(Head)self.classifier = nn.Sequential(nn.Flatten(),  # 7×7×32 → 1568维向量nn.Linear(1568, 128),nn.ReLU(),nn.Linear(128, num_classes)  # 128→10类(0-9))def forward(self, x):x = self.feature_extractor(x)  # Backbone 提特征x = self.classifier(x)         # Head 出结果return x

BaseLine的特点:
(1) 完整的 “任务解决方案”(能独立完成任务),比如这个MNIST_Baseline可以给定输入,得到一个10分类输出。

(2)通常包含 “简易 Backbone + Head”,是端到端模型。

(3)提供 “基准性能”,用于对比优化效果。

(4)简单、易实现、性能稳定(不求最优)

二、BackBone的含义

负责从原始数据(如图像)中提取基础、通用的特征,是模型的 “特征提取器”,比如 ResNet、EfficientNet。广泛应用于各种深度学习任务中,如图像分类、目标检测、语义分割等。不同的任务可以根据需求选择合适的 backbone,如 ResNet、VGG 等。

在目标检测和目标分割任务中,网络结构通常包含BackBone、Neck、Head。

比如可以使用ResNet作为目标检测任务的BackBone网络,负责提取输入数据的复杂特征,然后在此基础上设计或缝合一个对不同特征进行融合的网络——即Neck, 最后由Head负责形成最终需要结果特征。

下面将Resnet作为10分类任务的BackBone

import torch
from torchvision import models  # 导入官方预训练模型库# 1. 加载预训练模型(含权重),并冻结部分Backbone权重(可选,减少训练量)
backbone = models.resnet50(pretrained=True)  # 加载官方预训练ResNet50,含ImageNet权重
# 将0~-10的参数进行冻结,不再更新,根据数据量灵活调整
for param in list(backbone.parameters())[:-10]:param.requires_grad = False# 2. 替换Head层,适配自定义10分类任务(ResNet原Head是1000类全连接)
in_features = backbone.fc.in_features  # 获取Backbone输出特征维度(2048)
backbone.fc = torch.nn.Linear(in_features, 10)  # 新Head:2048维→10维(对应10类)# 3. 后续即可正常训练(此处省略数据加载、优化器定义等)
# 例如:将图像输入Backbone,得到10类概率
input_image = torch.randn(1, 3, 224, 224)  # 模拟1张224×224的3通道图像
output = backbone(input_image)  # 输出形状:(1, 10),即1个样本的10类概率

http://www.dtcms.com/a/473432.html

相关文章:

  • 多视图几何--密集匹配--视差平面推导
  • 官网和商城结合的网站网站推广合同模板
  • 微软新模型UserLM:如何为AI助手打造一个“真实世界”模拟器
  • Linux中页面分配alloc_pages相关函数
  • Qt---布局管理器
  • 基于单片机的图书馆智能座位管理平台
  • 中国机械工业建设集团有限公司网站高端网站建设论坛
  • Envoy Gateway + ext_authz 做“入口统一鉴权”,ABP 只做资源执行
  • vscode免密码认证ssh连接virtual box虚拟机
  • 3.6 JSON Mode与JSON Schema
  • React Native::关于react的匿名函数
  • 基于JETSON ORIN+FPGA+GMSL AI相机的工业双目视觉感知方案
  • 常规的鱼眼镜头有哪些类型?能做什么?
  • 虚实之间:AR/VR开发中的性能优化艺术
  • 新手要如何让网站被收录公司查询信息查询
  • PostgreSQL 的 hstore、arrays 数据类型
  • Java集合体系 —— Set篇
  • 硅基计划5.0 MySQL 贰 SQL约束三大范式
  • 设计模式——工厂模式
  • 变色龙哈希与隐私保护
  • 栈和队列:“单端吞吐”VS”双端通行“(第十讲)
  • ros2系统在ubuntu18.04环境下的环境搭建
  • 个人网站展示dw网站制作
  • 鸿蒙NEXT系列之精析NDK UI API(节点增删和属性设置)
  • 10个免费货源网站郑州网络科技公司有哪些
  • Spring 源码学习(十三)—— RequestMappingHandlerAdapter
  • 虚幻引擎虚拟制片入门教程 之 3D渲染基础知识:模型、材质、贴图、UV等
  • excel导出使用arthas动态追踪方法调用耗时后性能优化的过程
  • 【数据结构】强化训练:从基础到入门到进阶(2)
  • python异步编程 -什么是python的异步编程, 与多线程和多进程的区别