keras:f1_score作为metric,存储模型, 加载带有自定义函数的模型(2/2)

本文主要关于如何存储预测模型,加载带有自定义函数的模型。

存储预测模型

在keras.callbacks 包下有个函数叫做ModelCheckpoint,可以实现模型的存储。使用方法如下:

from keras.callbacks import ModelCheckpoint

ModelCheckpoint('model.h5', monitor='val_f1_m', save_best_only=True, mode='max', verbose=1)

其中:

model.h5是存储文件的名字

monitor='val_f1_m' 意思通过监督validation数据的f1_score进行模型存储,其中的f1_m是https://www.jianshu.com/p/e7d53a06a6a6文章中定义的f1_m函数

save_best_only=True, mode='max' 意思只存储在validation数据中得到最大f1_score值的模型。注意当使用自定义函数的时候,不要使用mode='auto'

verbose = 1 将显示每个epoch中val_f1_m的值和模型的存储情况

加载带有自定义函数的模型

加载模型可以使用keras.models包中的load_model函数

from keras.models import load_model

普通加载模型的方法:

model = load_model('model.h5')

当model.h5中含有自定义的函数,如https://www.jianshu.com/p/e7d53a06a6a6中定义的f1_m函数,如果仍用上述的方法加载模型,会出现错误如下:

ValueError: Unknown metric function:f1_m

所以加载带有自定义函数的模型正确使用方法(仍以f1_m为例):

model = load_model('model.h5',custom_objects={'f1_m':f1_m})

你可能感兴趣的:(keras:f1_score作为metric,存储模型, 加载带有自定义函数的模型(2/2))