Pytorch里面多任务Loss是加起来还是分别backward? | Pytorch | 深度学习

当你在深度学习中进入“多任务学习(Multi-task Learning)”的领域,第一道关卡可能不是设计网络结构,也不是准备数据集,而是:多个Loss到底是加起来一起backward,还是分别backward?

这个问题看似简单,却涉及PyTorch计算图的构建逻辑、自动求导机制、内存管理、任务耦合性、优化目标权衡等多重复杂因素。

图片

1. 多任务学习中的Loss定义

1.1 多任务Loss形式

在一个多任务模型中,我们一般会有若干个子任务,设任务数为 ,每个任务都有一个对应的Loss函数 ,我们最终优化的Loss是:

其中, 是任务的权重系数。

1.2 PyTorch中的基本写法

在PyTorch中,多任务Loss通常如下所示:

loss_task1 = criterion1(output1, target1)
loss_task2 = criterion2(output2, target2)
total_loss = loss_task1 + loss_task2
total_loss.backward()
optimizer.step()

2. 多任务Loss是加起来还是分别backward?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

concisedistinct

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值