【已解决】IndexError: too many indices for tensor of dimension 3

Bug场景:

在这里插入图片描述

问题描述

代码块:

output_patch = model(input_var)[0]
ind2_s = j+overlap//2 if j>0 else 0
ind2_e = j+size-overlap//2 if j+size<w else w
output[:,:,ind1_s:ind1_e, ind2_s:ind2_e] = output_patch[:,:,ind1_s-i:ind1_e-i, ind2_s-j:ind2_e-j]

对张量output_patch进行切片操作,报错:

IndexError: too many indices for tensor of dimension 3:

原因分析:

原始的model(input_var)为4维tensor,output_patch=model(input_var)[0]得到了3维tensor,而output_patch[:,:,ind1_s-i:ind1_e-i, ind2_s-j:ind2_e-j]则试图在3维tensor内取4维的切片,因而报错。

解决方案:

统一前后维度就行
在我们这个例子中,更改代码块的第一行,将维度统一为4:

output_patch = model(input_var)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值