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

相关推荐
Autumn_ing几秒前
国内有好用的设计智能体吗?Paico、墨刀AI客户端与 Codex 怎么分工
人工智能·墨刀ai客户端·设计智能体
QXWZ_IA1 分钟前
无人机巡检油气管道如何实现自主飞行和AI识别?
人工智能·无人机
zhangfeng113314 分钟前
大语言模型 Greedy Decoding,贪心解码 / 贪心搜索
人工智能·语言模型·自然语言处理
四季豆3316 分钟前
AI时代中小企业如何低成本提升数据和知识质量?
大数据·人工智能·数据挖掘
张建飞(Frank)18 分钟前
从零构建Agent(十):Model管理
人工智能·agent
沐曦股份MetaX22 分钟前
沐曦股份亮相CCF第三届算力活动:重磅发布Token算力普惠计划,赋能科研新时代
人工智能·科技·ai·开源·gpu算力
趣味科技v27 分钟前
开发周期从“周”到“天”:创想三维用AI重写研发节奏
人工智能·创想三维
中电金信41 分钟前
开发更高效、监控更实时、运维更省心,源启数据开发平台构筑一站式数据开发新底座
网络·数据库·人工智能
科技云报道41 分钟前
从佩戴到交互全面升级:乐奇Rokid发布Rokid Glasses 2,让AI眼镜更自然地融入日常
人工智能
小亮_money41 分钟前
Agent开发工程师-Python环境搭建
人工智能·python