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)