简体   繁体   English

对于 keras model,如何获得精度和召回率?

[英]How to get precision and recall, for a keras model?

i want to see precision and recall for my model for a binary image classification but i can find how do to that我想查看我的 model 的精度和召回率,以进行二进制图像分类,但我可以找到如何做到这一点

Here is my code这是我的代码


x = base_model.output

x = tf.keras.layers.GlobalAveragePooling2D()(x)

x = tf.keras.layers.Dense(1024, activation='relu')(x) 
x = tf.keras.layers.Dense(1024, activation='relu')(x)
x = tf.keras.layers.Dense(512, activation='relu')(x)
preds = tf.keras.layers.Dense(2, activation='softmax')(x)

model = tf.keras.Model(inputs = base_model.input, outputs = preds)

for layer in model.layers[:175]:
  layer.trainable = False 

for layer in model.layers[175:]:
  layer.trainable = True  

model.compile(optimizer='Adam', loss='categorical_crossentropy', metrics=['accuracy'])

history = model.fit_generator(generator=train_generator,
                              epochs=20,
                              steps_per_epoch=step_size_train,
                              validation_data = test_generator,
                              validation_steps=step_size_test)```

If you want precision and recall during train then you can add precision and recall metrics to the metrics list during model compilation as below如果您想要训练期间的精确度和召回率,那么您可以在 model 编译期间将精确度和召回率指标添加到metrics列表中,如下所示

model.compile(optimizer='Adam', loss='categorical_crossentropy',
              metrics=['accuracy', 
                       tf.keras.metrics.Precision(),
                       tf.keras.metrics.Recall()])

Example例子

input = tf.keras.layers.Input(8)
x = tf.keras.layers.Dense(4, activation='relu')(input) 
output = tf.keras.layers.Dense(2, activation='softmax')(x)

model = tf.keras.Model(inputs = input, outputs = output)
model.compile(optimizer='Adam', loss='categorical_crossentropy',
              metrics=['accuracy', 
                       tf.keras.metrics.Precision(),
                       tf.keras.metrics.Recall()])

X = np.random.randn(100,8)
y = np.random.randint(0,2, (100, 2))

model.fit(X, y, epochs=10)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM