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

相关推荐
Latchh3 分钟前
WebP转JPG背景变黑、边缘毛刺?4种方法
图像处理·人工智能·计算机视觉
碧海银沙音频科技研究院9 分钟前
基于炬芯ATS308X的DNN全连接神经网络手写数字识别系统设计
人工智能·深度学习·算法
想七想八不如1140811 分钟前
TTA详细学习
深度学习
xiangzhihong812 分钟前
番茄小说系统:从读者门户到作家与平台运营的多端实践
人工智能
古法搬砖工15 分钟前
MCP:给 AI Agent 装一个“万能 USB 接口”
人工智能·skill·mcp·搬砖工
能源革命15 分钟前
AI 日报|2026-10-23
人工智能
天空属于哈夫克321 分钟前
企业微信 API 二次开发与 AI 结合:如何设计智能消息处理流程
人工智能·企业微信
龙粤GEO22 分钟前
做GEO是不是只针对AI问答搜索
人工智能
frjc28 分钟前
Spring WebFlux SSE 长连接,可以替换为 Java 21 虚拟线程吗?
java·人工智能·spring·ai·ai编程
瀚域智擎29 分钟前
GEO 信源采信机制深度解析:大模型如何筛选和排序信源
大数据·人工智能·#geo #ai 搜索 #品牌增长 #数字化营销 #内容运营