做Top-N推荐,自定义BPR损失函数,lossbackward没有反应,没有任何报错,如何解决?
写了一个TOP-N推荐的程序,用变分自编码器对电影和用户分别进行编码和更新,然后点乘计算相似度。
当我用torch.nn.functional 预定义的binary_cross_entropy_with_logits作为损失函数时,代码能够正常运行,训练没问题。
但是,我用自己定义的BPR损失函数(代码如下):

程序能够计算出损失,但是运行loss_.backward()这一步没有任何反应,就是不动了,也不报错。


苦恼了一周了也没有解决,求大佬们指导指导
在实现Top-N推荐系统时,使用变分自编码器对电影和用户编码。当尝试用预定义的binary_cross_entropy_with_logits损失函数训练时正常,但自定义的BPR损失函数在调用loss.backward()时无响应,即模型不进行梯度计算,导致训练停滞。已有一周时间未能解决此问题。
1447





