记.backward()报错

最近我在模型训练损失里加入了LPIPS深度感知损失,训练的时候就出现了如上的报错,具体解释为:调用梯度反向传播loss.backward()时,我们计算梯度,需要一个标量的loss(即该loss张量的维度为1,只包含一个元素);而LPIPS的输出的loss为一个4,1,1,1的4维张量(batch_size,c,h,w),因此报错。

修正:

python 复制代码
def lpips_loss(img1, img2):
    # loss_fn_alex = lpips.LPIPS(net='alex')  # best forward scores
    loss_fn_vgg = lpips.LPIPS(net='vgg')  # closer to "traditional" perceptual loss, when used for optimization
    loss_fn_vgg.cuda()
    loss = loss_fn_vgg.forward(img1, img2)
    loss = torch.mean(loss)
    return loss

参考:

grad can be implicitly created only for scalar outputs-CSDN博客https://blog.csdn.net/qq_39208832/article/details/117415229
lpips · PyPIhttps://pypi.org/project/lpips/

相关推荐
彭军辉12 小时前
生命体AI和数字生命有什么区别
人工智能
Rauser Mack12 小时前
AI大模型测评:GPT-5.5翻车、Claude封神——大模型选型的真相
人工智能·gpt·prompt
2601_9619460812 小时前
AI API 网关实战:从单 Key 管理到企业级多租户架构
大数据·人工智能·金融·架构·api·个人开发
AI-好学者12 小时前
GraphRAG与混合检索架构
人工智能·知识图谱
智写-AI13 小时前
真实有效的免费降英文AI工具服务商
人工智能·python
大鹏的NLP博客13 小时前
深度学习模型部署一致性验证规范
人工智能·深度学习
土星云SaturnCloud13 小时前
边缘计算驱动绿氢生产过程智能寻优:电解槽级实时优化技术解析
服务器·人工智能·ai·边缘计算
Urbano14 小时前
校服精细化缝制难点、全流程自动化改造方案与核心贴袋设备选型实操科普
人工智能
IT_陈寒14 小时前
SpringBoot自动配置失灵?你可能忘了这个关键注解
前端·人工智能·后端