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

相关推荐
cui1787568几秒前
排队免单模式:从爆火到优化,探寻实体商业新出路
大数据·人工智能·设计模式·个人开发·设计规范
波动几何1 分钟前
第三代人工智能:因果仿真范式
人工智能
财迅通Ai2 分钟前
九丰能源2025年年报:主业稳健提质,新兴业务开辟增长新极
人工智能·能源·九丰能源
FrontAI2 分钟前
深入浅出 LangGraph —— 第5章:条件边与动态路由
人工智能·langchain·ai agent·langgraph
刘佬GEO5 分钟前
线下医美机构做 GEO 的实际价值:从策略到效果拆解
网络·人工智能·搜索引擎·ai·语言模型
前端摸鱼匠6 分钟前
【AI大模型春招面试题26】大模型的“上下文窗口”(Context Window)是什么?长度对模型性能的影响?
人工智能·ai·面试·大模型·求职招聘
ZWZhangYu10 分钟前
MCP 实战:从协议原理到 Java 自定义工具服务落地
java·开发语言·人工智能
IT_陈寒10 分钟前
为什么我的JavaScript变量老是不听使唤?
前端·人工智能·后端
草莓熊Lotso12 分钟前
从 LLM 底层原理到 LangChain 全链路打通:大模型应用开发新征程
linux·运维·服务器·人工智能·langchain
ai产品老杨13 分钟前
【深度架构解析】高并发 AI 视频管理平台:兼容 GB28181/RTSP,支持 X86/ARM+GPU/NPU 异构部署与源码交付
人工智能·架构·音视频