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

相关推荐
丘丘用户思思澪3 分钟前
LangChain Agent 完全指南
人工智能·langchain
开源量化GO9 分钟前
最新AI量化学习路径,从交易想法走到条件和动作
人工智能·python
科技发布13 分钟前
2026户外广告数字化升级:传播易以AI技术重构全域户外品效营销体系
人工智能·重构
SNKXD_113 分钟前
避开选型认知误区:2026年实测8款智能AI数字人平台总结筛选标准
大数据·人工智能·机器学习
未来和明天14 分钟前
领嵌iLeadE-588边缘计算盒子16路AI视频分析、4路AHD、4路千兆网、4G/5G通讯、标准API接口
人工智能·5g·边缘计算
微硬创新15 分钟前
耐达讯自动化PROFINET转DeviceNet网关:医药包装生产线的合规与效率双保障
服务器·人工智能·物联网·网络协议·自动化·信息与通信
小林ixn21 分钟前
Vue3接入DeepSeek流式输出,把“二进制碎片”和“局部热更新”扒个精光
前端·vue.js·人工智能
数聚天成DeepSData21 分钟前
自动驾驶感知数据集选型指南:目标检测、分割、车道线、车牌识别
人工智能·目标检测·自动驾驶
土星云SaturnCloud27 分钟前
SAM2模型在土星云边缘计算设备上的部署实战(下):从原理到落地全解析
服务器·人工智能·ai·边缘计算
QCoding28 分钟前
Java转AI第三课:Spring AI如何把100行HTTP代码缩减到10行?
java·人工智能