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

相关推荐
lovingsoft2 小时前
AI测试中的对抗测试:从“找Bug”到“预演战争”
人工智能·bug
塔望品牌咨询2 小时前
食品品牌战略验收的可验证框架:从文档交付到10项经营变化
大数据·人工智能
weixin_408266342 小时前
深度学习-nuscenes数据集关系
深度学习
YHL2 小时前
🧠 从零理解 Agent Memory 管理:内存记忆、文件持久化与上下文截断
人工智能
#卢松松#2 小时前
网站备案已经注销了,以后不需要那么多网站了。
人工智能·创业创新
myaifas2 小时前
知识库搭建的五大关键步骤
大数据·人工智能
johnsong2 小时前
AI 前沿日报 · 2026-09-11
人工智能
野生技术架构师2 小时前
从向量检索到混合搜索优化:Spring AI 2.0.1 + pgvector RAG 实战
java·人工智能·spring
这张生成的图像能检测吗2 小时前
(论文速读)DISCA:利用与蒸馏兼容的可学习特征缓存加速视频扩散转换器
人工智能·扩散模型·视频生成·特征缓存·步骤蒸馏
零依赖极客2 小时前
《30 天手搓 ARM 架构零依赖纯 C 推理引擎》课程介绍与大纲
c语言·开发语言·arm开发·人工智能·嵌入式硬件·ai编程