首页 新闻 会员 周边

tensorflow 2.x 梯度带断流问题

0
悬赏园豆:30 [待解决问题]

大致思路如下:
模型A 预测输入 x 的标签 y_pred
模型B 根据输入的 y_pred 和真实标签y输出一个数值 z 作为模型A 的损失
根据z计算模型A的梯度,并更新模型A
更新的A重新预测 x 的标签记为 y_pred_new
此时计算 y_pred 和 y_pred_new 的交叉熵损失loss,更新模型B,但是在loss对模型B的求梯度时,梯度全为none

代码如下

公式过程如下图
推测问题在于③位置上的对θ更新时求导,因为grads=tape.gradient()求出来是tensor,相当于βx变成了tensor,不是variable了,导致⑤位置求导的时候无法对β求导,我该如何解决这个问题?

h19615j的主页 h19615j | 初学一级 | 园豆:172
提问于:2021-11-08 15:42
< >
分享
所有回答(1)
0

问个题外话, 梯度为 none 就是算法里常说的 《梯度消失》吗

〆灬丶 | 园豆:2287 (老鸟四级) | 2021-11-10 17:32

不,这里是因为断流导致的,并不是常说的梯度消失

支持(0) 反对(0) h19615j | 园豆:172 (初学一级) | 2021-11-10 17:37

@h19615j: thx 加油

支持(0) 反对(0) 〆灬丶 | 园豆:2287 (老鸟四级) | 2021-11-10 18:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册