记.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/

相关推荐
“AI国潮设计-小江”2 分钟前
《【AIGC实战】Python+SDXL批量生成“英歌舞树莓香草布丁”IP,附保持角色一致性的代码逻辑》
开发语言·人工智能·python·prompt·aigc
const_qiu2 分钟前
第四章 06:4.6 统一入口 —— analyze() 能力收束
java·人工智能
硅谷秋水15 分钟前
DynaHarness 方法总结
人工智能·机器学习·语言模型·机器人
TK泰妞16 分钟前
跨境短视频真正难在哪?一套从找参考到批量测试的 AI 工作流
大数据·人工智能
m0_6220235319 分钟前
产业资本运作之金融结构重塑产业生态
人工智能·深度学习·金融
aichitang202422 分钟前
Meta Muse Spark Open:816B 巨型开放权重多模态 Agent 模型架构、部署实战与社区首测全解
大数据·人工智能·python·算法·ai·架构·spark
鬼手点金29 分钟前
如何选择模型
java·前端·人工智能·git·深度学习
xrgs_shz29 分钟前
基于OGD-Net的果园环境下蟠桃生长期检测
人工智能·yolo·目标检测·计算机视觉
我叫孙一鸣-专注电子元器件33 分钟前
快反镜的镜面偏转角,为什么不等于光束偏转角?
人工智能·智能硬件·半导体·压电驱动器
古法老登瞎折腾36 分钟前
大数据智能运维实战(三):实现第一个运维 MCP 工具——查询节点与组件状态
java·大数据·运维·人工智能·spring ai·mcp