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

相关推荐
架构师那点事儿几秒前
将 HuggingFace 自己的英译中模型迁移到 ONNX
人工智能·python·深度学习
智感子几秒前
一维时域信号里,AI 和传统方法谁更靠谱
人工智能
xianghongtao01164 分钟前
麦肯锡2026技术趋势01_智能体式软件开发_研究解读
人工智能
青柠之夏cc17 分钟前
智慧政务的 “最后一公里”:AI 客服与区块链如何让办事像网购一样简单?
人工智能
johnsmithCA21 分钟前
给搜索的法规条文做了个「版本核验」流程:怎么确认手上的条文还是现行有效版
人工智能·自动化运维
付威202322 分钟前
我用 Rust 重写了 Pi,启动快了 10 倍
人工智能
ai_xiaogui26 分钟前
PanelAI开源AI基础设施实战:一键部署大模型+私有API聚合+节点管理,企业入企与算力变现完整方案
人工智能·中小企业如何实现ai落地·传统商超接入ai大模型管理方案·企业如何利用ai智能体降本增效·业务经验与ai大模型结合的实践·开源大模型私有化部署教程·企业专属业务智能体搭建指南
东离与糖宝27 分钟前
把 TS 从头到尾过了一遍
人工智能
我是你的开心果77835 分钟前
ai全栈软件开发day26
人工智能
hahaha60161 小时前
完美反射法--白平衡算法
人工智能·算法