2017-08-02 42 views
0

我使用的下一个keras基于架构(article):为什么使用keras Conv2D图层时会出现错误?检查时出现错误:

model = Sequential() 
model.add(Conv2D(32, (3, 3), input_shape=(150, 150, 3))) 
... 
model.fit_generator(
    train_generator, 
    steps_per_epoch=nb_train_samples // batch_size, 
    epochs=epochs, 
    validation_data=validation_generator, 
    validation_steps=nb_validation_samples // batch_size) 

model.save_weights('first_try.h5') 

from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img 

img = load_img('test_data/a1.jpg') # this is a PIL image 
img = img.resize((150, 150)) 
x = img_to_array(img) 

prediction = model.predict(x) 
print(prediction) 

ValueError异常预期conv2d_1_input有4个维度,但得到了阵列形状(150,150,3)

灿你请告诉我如何解决它?

回答

1

您正在向模型中添加单个样本,而该样本预计会有一批样本,即4个预期维度来自:batch_size + img_shape。

一个很多方法可以得到你想要的单幅图像是

x = np.array([img]) 
+0

还我发现X = np.expand_dims(X,轴= 0) –

+0

@OlegDats准确,甚至一个简单的'X .reshape(1,* img.shape)'应该可以工作。 – 5agado

相关问题