【问题标题】:Index 1 is out of bounds for axis 3 with size 1对于大小为 1 的轴 3,索引 1 超出范围
【发布时间】:2018-06-30 07:45:32
【问题描述】:
output_layer = model.layers[4].output 
output_fn = K.function([model.layers[0].input], [output_layer])
#_____________________________________________________________________________________________________________________

input_image= X_train[0:1,:,:,:]
print(input_image.shape)

plt.imshow(input_image[0,0,:,:], cmap='gray')
plt.imshow(input_image[0,0,:,:])

output_image = output_fn([input_image])
output_image = np.array([output_image])
print([output_image.shape])

# Rearrnge dimension so we can plot the result as RGB images
output_image = np.rollaxis(np.rollaxis(output_image , 3 , 1) , 3 , 1)
print(output_image.shape)

fig = plt.figure(figsize=(8,8))
for i in range(32):
    ax = fig.add_subplot(6, 6, i+1)
    ax.imshow(output_image[0,:,:,i],interpolation='nearest') 
    ax.imshow(output_image[0,:,:,i],cmap=matplotlib.cm.gray)
    plt.xticks(np.array([]))
    plt.yticks(np.array([]))
    plt.tight_layout()

嗨,自己的卷积网络工作没问题。但 For 循环出现此错误:

IndexError: index 1 is out of bounds for axis 3 with size 1

有人帮我吗?所以谢谢。

【问题讨论】:

    标签: scikit-learn deep-learning keras theano spyder


    【解决方案1】:

    从错误看来,它来自ax.imshow() 中的任何一个。检查图像的尺寸顺序,您可能正在尝试遍历尺寸为 1 的图像的 channels 尺寸。那么正确的行将是

    ax.imshow(output_image[i,:,:,0],interpolation='nearest') 
    ax.imshow(output_image[i,:,:,0],cmap=matplotlib.cm.gray)
    

    【讨论】:

    • 嗨,当我更改这 2 行并立即运行时出现错误:IndexError: index 1 is out of bounds for axis 0 with size 1
    • output_image 的形状是什么?
    • 再次嗨,output_image.shape 这个output_image.shapeOut[20]: (1, 1, 47040, 1)
    • 嗯,很明显为什么会发生错误,你试图循​​环一个大小为 1 的维度。我不明白为什么图像会有这种形状。也许打印语句的输出将有助于澄清事情。此外,目前还不清楚您要使用output_fn 来实现什么
    • 您好,请看下面的评论,我几乎不会改变这个形状和代码。
    猜你喜欢
    • 2015-10-13
    • 2021-05-16
    • 1970-01-01
    • 2015-08-06
    • 2017-05-30
    • 1970-01-01
    • 2020-09-12
    • 2019-01-21
    • 1970-01-01
    相关资源
    最近更新 更多