代码之家  ›  专栏  ›  技术社区  ›  Arjun

如何从Keras中保存的模型进行预测?

  •  8
  • Arjun  · 技术社区  · 7 年前

    我已经使用 keras 它给出了非常好的精确度。我已使用 save() 并使用 h5 总体安排如何使用该模型进行预测?

    代码为:

    from keras.models import Sequential
    from keras.layers import Conv2D
    from keras.layers import MaxPooling2D
    from keras.layers import Flatten
    from keras.layers import Dense
    
    classifier = Sequential()
    
    classifier.add(Conv2D(32, (3, 3), input_shape = (64, 64, 3), activation =   'relu'))
    
    classifier.add(MaxPooling2D(pool_size = (2, 2)))
    
    classifier.add(Conv2D(32, (3, 3), activation = 'relu'))
    classifier.add(MaxPooling2D(pool_size = (2, 2)))
    classifier.add(Flatten())
    
    classifier.add(Dense(units = 128, activation = 'relu'))
    classifier.add(Dense(units = 1, activation = 'sigmoid'))
    classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
    
    from keras.preprocessing.image import ImageDataGenerator
    train_datagen = ImageDataGenerator(rescale = 1./255,
    shear_range = 0.2,
    zoom_range = 0.2,
    horizontal_flip = True)
    test_datagen = ImageDataGenerator(rescale = 1./255)
    training_set = train_datagen.flow_from_directory('training_set',
    target_size = (64, 64),
    batch_size = 32,
    class_mode = 'binary')
    test_set = test_datagen.flow_from_directory('test_set',
    target_size = (64, 64),
    batch_size = 32,
    class_mode = 'binary')
    classifier.fit_generator(training_set,
    steps_per_epoch = 8000,
    epochs = 5,
    validation_data = test_set,
    validation_steps = 2000)
    classifier.save('classifier.h5')
    

    提前感谢。。!!

    1 回复  |  直到 7 年前
        1
  •  14
  •   Mihai Alexandru-Ionut    6 年前

    第一步是 进口 您的模型使用 load_model 方法

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

    那你必须 编写 模型,以便进行预测。

    model.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
    

    现在你可以 predict 新条目图像的结果。

    from keras.preprocessing import image
    
    test_image = image.load_img(imagePath, target_size = (64, 64)) 
    test_image = image.img_to_array(test_image)
    test_image = np.expand_dims(test_image, axis = 0)
    
    #predict the result
    result = model.predict(test_image)