解决mxnet报错:Embedding layer doesn't support calculate data gradient

本文介绍如何在MXNet中使用BlockGrad操作来阻止反向传播中的梯度计算,通过修改Embedding层的输入处理方式,实现特定层的梯度屏蔽。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

word_embed = mx.sym.Embedding(data=seq, input_dim=vocab_size, output_dim=num_embed, name='seq_embed') 

   改为:

word_embed = mx.sym.Embedding(data=mx.sym.BlockGrad(seq), input_dim=vocab_size, output_dim=num_embed, name='seq_embed')

  即把输入数据用mx.sym.BlockGrad处理一下。
  这相当于在反向计算梯度时,在这里不计算梯度,直接把数据传过去。详见这里

  参考:https://github.com/apache/incubator-mxnet/issues/5258

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值