{RuntimeError}“nll_loss_forward_reduce_cuda_kernel_1d_index“ not implemented for ‘Float‘

应该是使用损失函数的时候,遇到了这个问题,意思就是说,这个函数的某个参数不支持Float类型的:
F.nll_loss(out, target)

这个函数就是算损失,一般来说,这个函数使用应该遵循下面两点: 第一点,应该前后维度一致,如果你的batchsize大于1,那么可以都展开成为一维的 第二点,out的类型是cuda类型的float,target是long()类型的
F.nll_loss(out.squeeze().flatten(), target_class.flatten().long())
#squeeze()是删除out中所有维度为1的
#flatten()是将batchsize的展开,都展开成一维的
#第二个target_class后边的flatten同理,但是可以看到,我加了个long(),就完成了转换

{RuntimeError}“nll_loss_forward_reduce_cuda_kernel_1d_index“ not implemented for ‘Float‘最先出现在Python成神之路

版权声明:
作者:cc
链接:https://www.techfm.club/p/10976.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>