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

在 语义分割 和 图像分类 任务中,image、label 和 output 的形状会有所不同。

1. 图像分类 (Image Classification)

图像分类 任务是将整个图像分类为一个类别。通常,output 是对整个图像的类别的预测,而 label 是该图像的真实类别。
1.1 image 的形状
  • image 是输入图像数据,通常是一个四维张量:

    • 形状(batch_size, channels, height, width)

    • 说明:批次中的每个图像是一个 RGB 图像(有 3 个通道),并且具有指定的高度和宽度。

示例

  • 假设图像尺寸是 3x3batch_size = 2,并且是 RGB 图像(3 个通道),则:

    • image 的形状(2, 3, 3, 3)

    • 其中:

      • 2:批次大小,表示 2 张图像。

      • 3:图像的颜色通道数(RGB)。

      • 3, 3:每张图像的尺寸(高 3,宽 3)。

1.2 label 的形状
  • label 是图像的真实标签(类别)。在图像分类中,每张图像对应一个 整数标签,表示该图像的类别。

    • 形状(batch_size,)

    • 说明:标签是一个一维张量,长度等于批次大小,每个值代表一个类别的整数标签。

示例

  • 对于二分类任务,label 可能是:

    label = torch.tensor([0, 1]) # 第一个图像的标签是 0,第二个图像的标签是 1
  • label 的形状(2,),表示 2 张图像的类别。

1.3 output 的形状
  • output 是模型对每张图像的预测,通常是每个类别的得分或概率。在图像分类中,output类别得分概率,并且通常使用 softmaxsigmoid 函数将它们转换为概率。

    • 形状(batch_size, num_classes)

    • 说明:每张图像有一个类别得分或概率,num_classes 是类别数量。

示例

  • 对于二分类问题(背景和前景),output 可能是:

    output = torch.tensor([[0.7, 0.3],  # 第一个图像:类别 0 的概率是 0.7,类别 1 的概率是 0.3[0.2, 0.8]])  # 第二个图像:类别 0 的概率是 0.2,类别 1 的概率是 0.8
    
  • output 的形状(2, 2),表示批次中有 2 张图像,每张图像有 2 个类别的预测概率。


2. 语义分割 (Semantic Segmentation)

语义分割 任务是将图像中的每个像素分类到一个类别。每个像素的标签表示该像素的类别。因此,outputlabel像素级别的标签
2.1 image 的形状
  • image 是输入图像数据,通常是一个四维张量:

    • 形状(batch_size, channels, height, width)

    • 说明:每张图像是一个 RGB 图像(3 个通道),并且具有指定的高度和宽度。批次大小是图像的数量。

示例

  • 假设图像尺寸是 3x3batch_size = 2,并且是 RGB 图像(3 个通道),则:

    • image 的形状(2, 3, 3, 3)

    • 其中:

      • 2:批次大小,表示 2 张图像。

      • 3:图像的颜色通道数(RGB)。

      • 3, 3:每张图像的尺寸(高 3,宽 3)。

2.2 label 的形状
  • label 是每个像素的类别标签,通常是一个 二维张量,每个像素的值表示该像素所属的类别。

    • 形状(batch_size, height, width)

    • 说明label 是一个三维张量,包含每张图像的像素级别标签。

示例

  • 对于二分类任务(背景和前景),label 可能是:

    label = torch.tensor([[[0, 0, 1],  # 第一张图像的标签:背景(0)和前景(1)[0, 1, 1],[2, 2, 1]],[[1, 0, 1],  # 第二张图像的标签:背景(0)和前景(1)[1, 1, 0],[2, 0, 1]]])
    
  • label 的形状(2, 3, 3),表示批次中有 2 张图像,每张图像是 3x3 的大小,每个像素有一个类别标签(例如:0、1、2)。

2.3 output 的形状
  • output 是模型对每个像素的预测,通常是一个 类别得分概率图,每个像素位置有多个得分(针对每个类别)。对于二分类问题,output 的形状通常是 (batch_size, num_classes, height, width)

    • 形状(batch_size, num_classes, height, width)

    • 说明output 是一个四维张量,其中 num_classes 是类别数量,每个像素会有一个对应类别的得分。

示例

  • 对于二分类问题(背景和前景),output 可能是:

    output = torch.tensor([[[[0.2, 0.8],  # 第一张图像:每个像素在背景和前景类别下的得分[0.5, 0.5],[0.6, 0.4]],[[0.8, 0.2],[0.1, 0.9],[0.7, 0.3]]],[[[0.9, 0.1],  # 第二张图像:每个像素在背景和前景类别下的得分[0.3, 0.7],[0.2, 0.8]],[[0.6, 0.4],[0.5, 0.5],[0.9, 0.1]]]])
    
  • output 的形状(2, 2, 3, 3),表示批次中有 2 张图像,每张图像有 2 个类别(背景和前景),每个图像的尺寸是 3x3


总结:

图像分类 (Image Classification)
  • image 的形状(batch_size, channels, height, width),例如 (2, 3, 3, 3)

  • label 的形状(batch_size,),例如 (2,)

  • output 的形状(batch_size, num_classes),例如 (2, 2)

语义分割 (Semantic Segmentation)
  • image 的形状(batch_size, channels, height, width),例如 (2, 3, 3, 3)

  • label 的形状(batch_size, height, width),例如 (2, 3, 3)

  • output 的形状(batch_size, num_classes, height, width),例如 (2, 2, 3, 3)

自我理解

图像分类:一张图像的预测值为一个列表,列表里面有num_classes个值,每个值表示对应类别的概率。

语义分割:一张图像的的每个像素的预测值为一个列表,列表里面有num_classes个值,每个值表示对应类比的概率。

http://www.lryc.cn/news/2383925.html

相关文章:

  • C++面试4-sizeof解析
  • CyberSecAsia专访CertiK首席安全官:区块链行业亟需“安全优先”开发范式
  • uniapp如何设置uni.request可变请求ip地址
  • 文件操作和IO-3 文件内容的读写
  • 架构的设计
  • SpringAI 大模型应用开发篇-SpringAI 项目的新手入门知识
  • 编程速递-RAD Studio 12.3 Athens五月补丁:May Patch Available
  • Vue3实现轮播表(表格滚动)
  • Python爬虫(33)Python爬虫高阶:动态页面破解与验证码OCR识别全流程实战
  • Matlab学习合集
  • 基于labview的声音采集与存储分析系统
  • 【项目记录】部门增删改及日志技术
  • TDengine 更多安全策略
  • 电子制造企业智能制造升级:MES系统应用深度解析
  • Java使用Collections集合工具类
  • 磁盘空间不足,迁移Docker 数据目录
  • python打卡day33
  • 目标检测新突破:用MSBlock打造更强YOLOv8
  • 同城上门预约服务系统案例分享,上门服务到家系统都有什么功能?这个功能,很重要!
  • docker面试题(5)
  • 为什么需要在循环里fetch?
  • 用 UniApp 开发 TilePuzzle:一个由 CodeBuddy 主动驱动的拼图小游戏
  • HJ101 输入整型数组和排序标识【牛客网】
  • 在Linux debian12系统上使用go语言以及excelize库处理excel数据
  • Appium 的 enableMultiWindows 参数
  • 【Python/Tkinter】实现程序菜单
  • “轩辕杯“云盾砺剑 CTF挑战赛web方向题解
  • 常用UI自动化测试框架
  • 场景化应用实战系列六:检索问答系统
  • 选择合适的AI模型:解析Trae编辑器中的多款模型及其应用场景