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

相关推荐
HyperAI超神经几秒前
物理信息机器学习新突破!新型GNN架构可对复杂多体动力系统进行准确预测,赋能机器人/航空航天/材料科学
人工智能·深度学习·机器学习·架构·机器人·cpu·物理
tq1086几秒前
文明跃迁中的结构与网络
人工智能
速易达网络几秒前
OpenClaw从入门到实战:打造你的专属AI智能体
人工智能
体育分享_大眼2 分钟前
AI天花板级碰撞!GPT-5.4正式接入DataEyes,数据智能进入「秒级响应」时代
大数据·人工智能·gpt
冰糖猕猴桃4 分钟前
【AI】深度解析:OpenAI API 调用之争 —— requests 裸连 vs openai SDK
人工智能·ai·openai·模型调用
cn_newer6 分钟前
人工智能时代,劳累到死,还是轻松活着?
人工智能
StarChainTech6 分钟前
告别“催款”焦虑:如何打造一款高可用、多场景的智能代扣系统
大数据·人工智能·微信小程序·小程序·软件需求
EMQX7 分钟前
消息平台演进之路:为什么融合是必然趋势
人工智能·mqtt·智能硬件
七夜zippoe11 分钟前
人工智能时代,普通人如何用AI创造真实收入
人工智能·ai·语言世界·ai红利·起点
AI生成未来13 分钟前
CVPR 2026|复旦大学提出OmniLottie:首个端到端多模态矢量动画生成框架!
人工智能·aigc·端到端·动画生成