Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 显示图像时大小无效_Python_Matplotlib_Keras_Neural Network_Conv Neural Network - Fatal编程技术网

Python 显示图像时大小无效

Python 显示图像时大小无效,python,matplotlib,keras,neural-network,conv-neural-network,Python,Matplotlib,Keras,Neural Network,Conv Neural Network,我一直在尝试检索VGG16的隐藏层,并在Keras中显示特征图。我试图做的是获取block1\u conv1功能图并将其显示出来。但不幸的是,我得到了以下错误: TypeError: Invalid dimensions for image data 请查找以下代码: from keras.applications.vgg16 import VGG16 from keras.preprocessing import image from keras.applications.vgg16 imp

我一直在尝试检索VGG16的隐藏层,并在Keras中显示特征图。我试图做的是获取
block1\u conv1
功能图并将其显示出来。但不幸的是,我得到了以下错误:

TypeError: Invalid dimensions for image data
请查找以下代码:

from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
from keras.models import Model
import matplotlib.pyplot as plt
import numpy as np
from keras import backend as K


img_path = "bombiliki.jpeg"
img = image.load_img (img_path, target_size=(224,224))
imgArr = image.img_to_array (img)
imgArr = np.expand_dims(imgArr, axis=0)
img = preprocess_input (imgArr)


model = VGG16(weights='imagenet', include_top=False)
layer_name = 'block1_conv1'

interMediateOutput = Model(inputs=model.inputs, outputs=model.get_layer(layer_name).output)
features = interMediateOutput.predict (img)
print ("Shape of the feature is ", features.shape)
pic = features[:,:,:,1]
print ("pic shape ", pic.shape)
data = np.asarray(pic)
print ("Data Dimension is ", data.ndim)

plt.imshow (pic)
plt.show()
输出:

('Shape of the feature is ', (1, 224, 224, 64))
('pic shape ', (1, 224, 224))
('Data Dimension is ', 3)
Traceback (most recent call last):
  File "vgg16.py", line 28, in <module>
    plt.imshow (pic)
  File "/home/navals/anaconda2/envs/musarni/lib/python2.7/site-packages/matplotlib/pyplot.py", line 3205, in imshow
    **kwargs)
  File "/home/navals/anaconda2/envs/musarni/lib/python2.7/site-packages/matplotlib/__init__.py", line 1855, in inner
    return func(ax, *args, **kwargs)
  File "/home/navals/anaconda2/envs/musarni/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 5487, in imshow
    im.set_data(X)
  File "/home/navals/anaconda2/envs/musarni/lib/python2.7/site-packages/matplotlib/image.py", line 653, in set_data
    raise TypeError("Invalid dimensions for image data")
TypeError: Invalid dimensions for image data
('feature的形状是',(1224224,64))
(‘图片形状’,(1224224))
(‘数据维度为’,3)
回溯(最近一次呼叫最后一次):
文件“vgg16.py”,第28行,在
plt.imshow(图片)
imshow中的文件“/home/navals/anaconda2/envs/musarni/lib/python2.7/site packages/matplotlib/pyplot.py”,第3205行
**kwargs)
文件“/home/navals/anaconda2/envs/musarni/lib/python2.7/site packages/matplotlib/__init__.py”,第1855行,内部
返回函数(ax,*args,**kwargs)
文件“/home/navals/anaconda2/envs/musarni/lib/python2.7/site packages/matplotlib/axes/_axes.py”,第5487行,在imshow中
im.set_数据(X)
set_数据中的文件“/home/navals/anaconda2/envs/musarni/lib/python2.7/site packages/matplotlib/image.py”,第653行
raise TypeError(“图像数据的维度无效”)
TypeError:图像数据的维度无效

predict方法将返回shape
的输出(n_样本,model_输出_shape…
)。因此,如果你给它一个样本,要得到给定样本的预测,你必须:

pic = features[0]
特别是在您的示例中,如果要选择特定过滤器的输出,则需要将其索引指定为第四轴:

pic = features[0, :, :, desired_filter_index]
你可以很容易地画出:

plt.imshow(pic)

img加载了吗?你能打印图像吗?不,图像没有打印。我收到了错误“ypeError:图像数据的维度无效”@Whoami此错误发生在哪里?请包含完整的堆栈跟踪。我尝试使用pic=features[0:,:,:,:,4],仍然是相同的错误。@如果第一个轴不应该是
0:
,它必须是
0