gpt4 book ai didi

python - 在 CNN 模型中对图像使用预测方法时的尺寸误差

转载 作者:行者123 更新时间:2023-11-30 09:05:12 25 4
gpt4 key购买 nike

我尝试使用 Keras (2.2.4) 和 TensorFlow (1.9.0) 作为后端来预测单个图像:

def enigne(data):

img=data
image_shape=img.shape

num_train_samples = 4206
num_val_samples = 916
train_batch_size = 10
val_batch_size = 10
IMAGE_SIZE = 64
IMAGE_CHANNELS = 3
kernel_size = (3, 3)
pool_size = (2, 2)
first_filters = 32
second_filters = 128
image_resize=cv.resize(img,(64,64))

# Loading the model
model = Sequential()
model.add(Conv2D(first_filters, kernel_size, activation='relu', input_shape=(64, 64, 3)))
model.add(Conv2D(first_filters, kernel_size, activation='relu', kernel_regularizer=regularizers.l2(0.001))
model.add(Conv2D(second_filters, kernel_size, activation='relu', kernel_regularizer=regularizers.l2(0.001)))
model.add(MaxPooling2D(pool_size=pool_size))
model.add(Dropout(dropout_conv))
model.add(Flatten())
model.add(Dense(256, activation="relu"))
model.add(Dense(1, activation="sigmoid"))
model.compile(Adam(lr=0.0001), loss='binary_crossentropy',
metrics=['accuracy'])
datagen = ImageDataGenerator(rescale=1.0 / 255)
model.load_weights('stableweights.h5')
y_pred_keras = model.predict_proba(image_resize)
p = []

for i in y_pred_keras:
for k in i:
if k <= 0.421:
p.append(0)
else:
p.append(1)

return p

我收到这样的错误:

ValueError: Error when checking input: expected conv2d_input to have 4 dimensions, but got array with shape (64, 64, 3) 

如何转换图像以获得适当的尺寸以将其输入 Keras 模型?

最佳答案

Keras 模型需要一批样本作为输入。因此,您需要将第一个轴作为批处理轴:

import numpy as np

image_resize = np.expand_dims(image_resize, axis=0) # shape would be: (1, 64, 64, 3)

关于python - 在 CNN 模型中对图像使用预测方法时的尺寸误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53846737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com