如何从保存的模型中打印我的训练和测试(准确性,验证准确性)?



我是深度学习的新手,我想获得我的模型的训练(accuracy,val_accuracy)和测试(accuracy,val_accuracy),我还想知道如何用混淆矩阵打印精度,召回率和f1-score值。

这是我的模型的一些细节

vgg_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
for layer in vgg_model.layers:
layer.trainable = False
my_vgg_model = Sequential()
my_vgg_model.add(vgg_model)
my_vgg_model.add(Flatten())
my_vgg_model.add(Dense(256, activation='relu'))
my_vgg_model.add(Dense(128, activation='relu'))
my_vgg_model.add(Dense(2, activation='softmax'))
my_vgg_model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
hist = my_vgg_model.fit(x_train, y_train, 
batch_size=32, 
epochs=1, 
verbose=1, 
validation_data=(x_test, y_test),
callbacks=[cp_callback])

我没有尝试过任何东西,因为我无法分别获得这些训练和测试的准确性:(

训练后,训练集和测试集的loss和准确率存储在hist变量中。您可以通过调用hist.history来作为字典访问它们。

对于其他指标,您可以使用sklearn.metrics,如下所示:

from sklearn.metrics import f1_score, precision_score, recall_score, confusion_matrix

# model
vgg_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
for layer in vgg_model.layers:
layer.trainable = False
my_vgg_model = Sequential()
my_vgg_model.add(vgg_model)
my_vgg_model.add(Flatten())
my_vgg_model.add(Dense(256, activation='relu'))
my_vgg_model.add(Dense(128, activation='relu'))
my_vgg_model.add(Dense(2, activation='softmax'))
my_vgg_model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# training
hist = my_vgg_model.fit(x_train, y_train, 
batch_size=32, 
epochs=1, 
verbose=1, 
validation_data=(x_test, y_test),
callbacks=[cp_callback])
# accuracy
accuracy_train = hist.history['accuracy']
accuracy_test = hist.history['val_accuracy']
# predict with model to get other metrics
y_train_pred = my_vgg_model.predict(x_train)
y_test_pred = my_vgg_model.predict(x_test)
# other metrics
f1_train = f1_score(y_train, y_train_pred)
precision_train = precision_score(y_train, y_train_pred)
recall_train = recall_score(y_train, y_train_pred)
confusion_train = confusion_matrix(y_train, y_train_pred)
f1_test = f1_score(y_test, y_test_pred)
precision_test = precision_score(y_test, y_test_pred)
recall_test = recall_score(y_test, y_test_pred)
confusion_test = confusion_matrix(y_test, y_test_pred)

最新更新