Torch 常用

 #view

import torch
x = torch.tensor([1, 2, 3, 4])
y = x.view(2, 2)
# y 的形状将是 torch.Size([2, 2])

# permute

x = torch.randn(2, 3)
y = x.permute(1, 0)
# y 的形状将是 torch.Size([3, 2])

#matmul 

A = torch.tensor([[1, 2], [3, 4]])
B = torch.tensor([[5, 6], [7, 8]])
C = torch.matmul(A, B)
# C 将是 torch.tensor([[19, 22], [43, 50]])

#__call__

在 Python 类中,__call__ 方法是一个特殊的方法,它允许一个类的实例表现得像一个函数一样,可以被调用。当你在一个对象上使用圆括号 () 时,__call__ 方法被触发。

在 PyTorch 中,__call__ 方法通常用于自定义损失函数(criterion)或模型。对于损失函数,__call__ 方法定义了如何根据模型的预测(predictions)和真实标签(targets)计算损失值。

  1. 计算损失: 根据传入的模型预测 preds 和批次数据 batch,计算分类(cls)、边界框(box)和分布场(dfl)的损失。

  2. 损失组合: 将不同的损失部分(box, cls, dfl)相加并乘以批次大小,得到总损失。

  3. 返回值: 返回总损失和解耦的损失值,这允许在训练过程中同时优化多个损失组件。

具体步骤包括:

  • 使用 preprocess 方法预处理目标数据。
  • 通过 bbox_decode 方法解码预测的边界框。
  • 使用自定义的分配器(self.assigner)分配真实标签和边界框到预测上。
  • 计算分类损失和边界框损失。
  • 将损失值乘以超参数(如 self.hyp.boxself.hyp.clsself.hyp.dfl)以控制不同损失部分的贡献。
  • 返回总损失和解耦的损失值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值