在使用keras時(shí)經(jīng)常會(huì)使用到存儲(chǔ)模型和加載模型。在存儲(chǔ)時(shí)使用
model.save("model.h5")
如果此時(shí)存儲(chǔ)的model中有自定義的loss或者metrics,如果使用model = keras.models.load_model("model.h5")在加載模型的時(shí)候會(huì)報(bào)錯(cuò):
ValueError: Unknown metric function:acc_top5
這是因?yàn)樽远x的函數(shù)沒(méi)有被保存,加載出來(lái)就會(huì)報(bào)錯(cuò),解決方案為:
model = keras.models.load_model("model.h5", custom_objects={'acc_top5': acc_top5})
如果是自定義loss,則custom_objects={}括號(hào)中做對(duì)應(yīng)修改:
model = keras.models.load_model("model.h5", custom_objects={'loss_fun': loss_fun})