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

相关推荐
papaofdoudou几秒前
从贝克莱的质问到ε-δ的胜利:微积分如何走向严密
人工智能
人工智能技术咨询.3 分钟前
【无标题】数字孪生与航空发动机结合的关键技术点
人工智能
deephub3 分钟前
知识图谱的可验证性:断言图谱的设计原理
人工智能·知识图谱·大语言模型·rag
小王努力学编程4 分钟前
LangChain——AI应用开发框架(核心组件2)
linux·服务器·c++·人工智能·python·langchain·信号
shengMio11 分钟前
周报——2026.1.19-1.25
深度学习·论文写作
_Soy_Milk13 分钟前
【算法工程师】—— Pytorch
人工智能·pytorch·算法
bing.shao14 分钟前
文心大模型 5.0 正式版上线:用 Golang 解锁全模态 AI 工业化落地新路径
人工智能·golang·dubbo
lina_mua15 分钟前
Cursor模型选择完全指南:为前端开发找到最佳AI助手
java·前端·人工智能·编辑器·visual studio
高洁0115 分钟前
数字孪生应用于特种设备领域的技术难点
人工智能·python·深度学习·机器学习·知识图谱
秋918 分钟前
idea中如何使用Trae AI插件,并举例说明
java·人工智能·intellij-idea