MobileNetV2 icon indicating copy to clipboard operation
MobileNetV2 copied to clipboard

Test Model ?

Open Alissonerdx opened this issue 6 years ago • 2 comments

I'm sorry for the question but how do I test the generated model?

Alissonerdx avatar May 22 '18 14:05 Alissonerdx

me too, have u solved it, bro?

Lebhoryi avatar Nov 05 '18 12:11 Lebhoryi

I'm sorry for the question but how do I test the generated model?

在train.py里面添加如下代码实现预测: `

def generate_test(batch, size):

ptest = 'data/test_'
datagen2 = ImageDataGenerator(rescale=1. / 255)
test_generator = datagen2.flow_from_directory(
    ptest,
    target_size=(size, size),
    batch_size=batch,
    class_mode='categorical')

count = 0
for root, dirs, files in os.walk(ptest):
    for each in files:
        count += 1
return test_generator,count

def test(weights,batch=1, size=224)->'result':

size = 224
test_gen,count = generate_test(batch, size)
with CustomObjectScope({'relu6': keras.layers.ReLU(max_value=6, name="relu6"),'DepthwiseConv2D': keras.layers.DepthwiseConv2D}):
    model = load_model(weights)
print("test")

predictions = model.predict(test_gen,steps=count//batch,verbose=1)
evaluate_result = model.evaluate(test_gen,steps=count//batch,verbose=1) 
print("预测类别结果:",np.argmax(predictions,axis=-1),"预测结果的shape:",predictions.shape)
print(dict(zip(model.metrics_names, evaluate_result)))
print("Done!")`

最后在主函数里面添加test()函数即可

if name == 'main':

  main(sys.argv)
  weights = 'trained_model/all_weights.h5'
  test(weights)

简单说就是: model.fit()用于训练 hist = model.fit( train_generator, validation_data=validation_generator, steps_per_epoch=count1 // batch, validation_steps=count2 // batch, epochs=epochs, callbacks=[earlystop])

model.predict用于预测结果值 predictions = model.predict(test_gen,steps=count//batch,verbose=1)

model.evaluate用于得到指标值 evaluate_result = model.evaluate(test_gen,steps=count//batch,verbose=1)

Asuna88 avatar May 14 '21 01:05 Asuna88