paddle多任务语义分割(两张输出对应于两张)
收藏
用paddle进行多任务语义分割,两张输入图像经过编码器(VGG)提取特征,然后由两个独立的解码器得到两张输出语义分割图。
训练过程中发现,loss一直在震荡。两个任务的精度都比较低(一高一低,有一个任务精度接近0)
训练代码(交叉熵损失):
for i_batch, (img1, img2, label1, label2, _) in enumerate(train_loader):
label1 = paddle.cast(label1, dtype='int64')
label2 = paddle.cast(label2, dtype='int64')
output1, output2 = net(img1, img2)
loss1 = criterion_CE(output1, label1)
loss2 = criterion_CE(output2, label2)
loss = loss1 + loss2
loss.backward()
optimizer.step()
optimizer.clear_grad()
#
loss_np = loss.numpy()
train_loss += loss_np[0]
相同的模型代码在XX火炬上都能正常收敛。求问paddle支持这种多任务学习吗??
1
收藏
请登录后评论
用的是2.0rc版本的,优化器是动量SGD。希望好心大神帮我看看是哪里的问题。
找到问题了,是实现的CBAM注意力模块有问题