簡體   English   中英

在測試數據集上測試 h5 模型

[英]Test h5 model on Test Dataset

使用遷移學習進行二元分類。 我使用我的數據集訓練模型,該數據集已分為三個文件夾 - train、test、val。 其中每一個進一步包含每個類的單獨文件夾。

r = model.fit_generator(
  training_set,
  validation_data = val_set, 
  epochs=5,
  steps_per_epoch=len(training_set),
  validation_steps=len(test_set)
)

訓練后,我將模型保存為 h5 文件。

import tensorflow as tf

from keras.models import load_model

model.save('vgg16_new_model.h5')

我如何使用它在測試集上測試模型?

有一個與fit_generator等效的fit_generator稱為evaluate_generator ,當您想將測試數據集傳遞給您的訓練模型時,您可以使用它。 但是,這兩個選項在最新的Tensorflow版本中都已棄用,因此只需使用model.fitmodel.evaluate 這是一個簡單的例子:

import tensorflow as tf

flowers = tf.keras.utils.get_file(
    'flower_photos',
    'https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',
    untar=True)

img_gen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255, rotation_range=20)

model = tf.keras.applications.vgg16.VGG16(include_top=False, input_shape=(256, 256, 3))
x = tf.keras.layers.Flatten()(model.layers[-1].output)
x = tf.keras.layers.Dense(1024, activation='relu')(x)
output = tf.keras.layers.Dense(5)(x)
model = tf.keras.Model(inputs=model.inputs, outputs=output)
model.summary()

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

epochs=1
model.fit(img_gen.flow_from_directory(flowers, batch_size=32, class_mode='sparse'),  epochs=epochs)
model.save('vgg16_new_model.h5')

##############################################################
new_model = tf.keras.models.load_model('vgg16_new_model.h5')
results = new_model.evaluate(img_gen.flow_from_directory(flowers, batch_size=32, class_mode='sparse'))
tf.print('Accuracy: ', results[1]*100)
Found 3670 images belonging to 5 classes.
115/115 [==============================] - 73s 629ms/step - loss: 1.6048 - accuracy: 0.2447
Accuracy:  24.468664824962616

請注意,我使用相同的子集進行訓練和評估,但您會將測試集傳遞給model.evaluate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM