mindspore中两个网络,用它们损失函数的和来优化

问题描述:

想咨询一下,就是我有两个网络net1,net2,定义了损失函数是loss1+loss2,怎么同时用这一个loss优化这两个网络?

应该如何定义我的TrainOneStepCell?看这个定义好像只支持一个network啊。这怎么办?

 

解答:

将两个前向net,两个loss计算,以及loss求和封装为一个network。 两个loss求和: https://mindspore.cn/docs/programming_guide/zh-CN/r1.6/loss.html#%E5%AE%9A%E4%B9%89%E5%A4%9A%E6%A0%87%E7%AD%BE%E6%95%B0%E6%8D%AE%E9%9B%86 可参考modelzoo中bert实现: https://gitee.com/mindspore/models/blob/r1.6/official/nlp/bert/run_pretrain.py 其中: net_with_loss = BertNetworkWithLoss(bert_net_cfg, True) net_with_grads = BertTrainOneStepCell(net_with_loss, optimizer=optimizer, sens=cfg.Thor.loss_scale, enable_clip_grad=False) BertNetworkWithLoss就是计算两个net的loss,并求和

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值