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

相关推荐
AiTEN_Robotics4 分钟前
AMR机器人:如何满足现代物料搬运的需求
人工智能·机器人·自动化
产品人卫朋7 分钟前
卫朋:IPD流程落地 - 市场地图拆解篇
大数据·人工智能·物联网
沛沛老爹27 分钟前
跨平台Agent Skills开发:适配器模式赋能提示词优化与多AI应用无缝集成
人工智能·agent·适配器模式·rag·企业转型·skills
zhangshuang-peta29 分钟前
适用于MCP的Nginx类代理:为何AI工具集成需要网关层
人工智能·ai agent·mcp·peta
Network_Engineer29 分钟前
从零手写RNN&BiRNN:从原理到双向实现
人工智能·rnn·深度学习·神经网络
机器学习之心30 分钟前
Bayes-TCN+SHAP分析贝叶斯优化深度学习多变量分类预测可解释性分析!Matlab完整代码
深度学习·matlab·分类·贝叶斯优化深度学习
想进部的张同学31 分钟前
week1-day5-CNN卷积补充感受野-CUDA 一、CUDA 编程模型基础 1.1 CPU vs GPU 架构线程索引与向量乘法
人工智能·神经网络·cnn
WGS.34 分钟前
fastenhancer DPRNN torch 实现
pytorch·深度学习
机器学习之心38 分钟前
TCN+SHAP分析深度学习多变量分类预测可解释性分析!Matlab完整代码
深度学习·matlab·分类·多变量分类预测可解释性分析
睡醒了叭38 分钟前
目标检测-深度学习-SSD模型项目
人工智能·深度学习·目标检测