我制作了一个张量流模型,并使用model.fit_generator方法在图像目录上对其进行了训练和测试。但是知道我想在单个图像上使用它,并且没有任何方法可以允许这样做,因此我决定通过将jpg图像转换为3d rgb numpy数组来使用numpy数组。你会怎么做?
model = Sequential()
model.add(Convolution2D(32, 3, 3, input_shape=(img_width, img_height,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(64, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
nb_epoch = 1
nb_train_samples = 2048
nb_validation_samples = 832
#model.fit_generator(
# train_generator,
# samples_per_epoch=nb_train_samples,
# nb_epoch=nb_epoch,
# validation_data=validation_generator,
# nb_val_samples=nb_validation_samples)
答案 0 :(得分:0)
尝试使用PIL(pip安装枕头):
from PIL import Image
import numpy as np
im = Image.open("test.jpg")
im = np.array(im,dtype=np.float32)
然后进行预测:
#Assuming batch size of 1 and data is normalised
y = model.predict(np.expand_dims(im/255,0))