Как использовать сохраненную модель в Keras для прогнозирования и классификации изображения? - PullRequest
0 голосов
/ 03 мая 2018

Я обучил классификатор положения рук модели с помощью Keras, и в итоге я сохранил модель с кодом (model.save ('model.h5')) теперь я пытаюсь предсказать изображение, используя эту модель, это выполнимо? Если да, не могли бы вы привести примеры? PS: мои данные представлены в виде файла CSV

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

когда я запускаю публикацию кода @Mihai Alexandru-Ionut

# dimensions of our images
img_width, img_height = 313, 220

# load the model we saved
model = load_model('hmodel.h5')
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy','mse'])

test_image= image.load_img('/Images/1.jpg',target_size = (img_width, img_height))
test_image = image.img_to_array(test_image)
test_image = np.expand_dims(test_image, axis = 0)
result = model.predict(test_image)

я получаю следующую ошибку: строка 113, в _standardize_input_data 'with shape' + str (data_shape)) ValueError: Ошибка при проверке: ожидалось, что dens_1_input имеет 2 измерения, но получил массив с формой (1, 313, 220, 3) Может ли кто-нибудь помочь мне исправить эту ошибку

0 голосов
/ 03 мая 2018

Прежде всего, вы должны импортировать сохраненную модель, используя функцию load_model.

from keras.models import load_model
model = load_model('model.h5')

Прежде чем вы сможете предсказать результат для нового заданного ввода, вы должны вызвать метод compile.

classifier.compile(loss='your_loss', optimizer='your_optimizer', metrics=['your_metrics'])

После компиляции все готово для работы с новыми изображениями.

from keras.preprocessing import image

test_image= image.load_img(picturePath, target_size = (img_width, img_height)) 
test_image = image.img_to_array(test_image)
test_image = numpy.expand_dims(test_image, axis = 0)
test_image = test_image.reshape(img_width, img_height)
result = model.predict(test_image)   
...