Paddle 多loss的情况下,可不可以在代码中动态选择需要反向传播的loss

pbwdgjma  于 2022-04-21  发布在  Java
关注(0)|答案(2)|浏览(237)

loss = loss1 + loss2
opt = fluid.optimizer.SGD()
opt.minimize(loss)

多任务训练可以这样写多个loss求和,但是如果一部分数据只需要反向传播loss1,另一部分数据只需要反向传播loss2,应该怎么写呢

c8ib6hqw

c8ib6hqw1#

可以给输入加个label(0,1),例如现在有两个样本a,b,label分别为0,1,同时a样本对应loss1,b样本对应loss2
在算loss的时候可以表示为loss1*(1-label)+loss2*label

sg3maiej

sg3maiej2#

loss的问题已经解决了,现在计算auc 的时候设置了slide_steps,由于用的是default_main_program,数据a和b都会被用来计算auc,但是只希望用数据a计算auc,这个应该怎么办呢 @jerrywgz

相关问题