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

相关推荐
子午几秒前
【2026原创】动物识别系统~Python+深度学习+人工智能+模型训练+图像识别
人工智能·python·深度学习
o_insist6 分钟前
LangChain1.0 实现 PDF 文档向量检索全流程
人工智能·python·langchain
victory04317 分钟前
大模型学习阶段总结和下一阶段展望
深度学习·学习·大模型
OpenMiniServer9 分钟前
AI + GitLab + VSCode:下一代开发工作流的革命性集成
人工智能·vscode·gitlab
脑洞AI食验员11 分钟前
智能体来了:用异常与文件处理守住代码底线
人工智能·python
摘星观月15 分钟前
【三维重建2】TCPFormer以及NeRF相关SOTA方法
人工智能·深度学习
shangjian00715 分钟前
AI大模型-机器学习-分类
人工智能·机器学习·分类
Tiny_React17 分钟前
使用 Claude Code Skills 模拟的视频生成流程
人工智能·音视频开发·vibecoding
人工小情绪19 分钟前
深度学习模型部署
人工智能·深度学习
Codelinghu21 分钟前
「 LLM实战 - 企业 」构建企业级RAG系统:基于Milvus向量数据库的高效检索实践
人工智能·后端·llm