首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TF 1.x中使用回调将整个模型保存为TF SavedModel?

在TF 1.x中使用回调将整个模型保存为TF SavedModel?
EN

Stack Overflow用户
提问于 2020-11-16 21:26:25
回答 1查看 66关注 0票数 2

在使用keras model.fit_generator()进行训练期间,我想每隔几个时期保存整个模型,包括优化器的状态、自定义指标等。目标是能够从中断的确切状态恢复训练。

我正在使用的代码是TF 1.14。我知道ModelCheckpoint回调,但它默认以hdf5格式保存模型,这显然不能正确处理自定义丢失。我认为回调可能只是在训练期间以预定义的时间间隔调用model.save(),那么有没有办法在TF2.x之前的版本中更改传递给SavedModel调用的文件格式,从而产生我想要的结果?

EN

回答 1

Stack Overflow用户

发布于 2020-11-16 22:09:46

这段代码使用TF 1.15进行了测试

代码语言:javascript
复制
import numpy as np
import keras
代码语言:javascript
复制
def custom_loss(y_true, y_pred):
    return y_pred*y_pred - y_true*y_true


m = keras.models.Sequential()
m.add(keras.layers.Dense(3, input_shape=(10,)))
m.compile('adam', loss=custom_loss)
代码语言:javascript
复制
x = np.random.randint(0,100,size=(200,10))
y = np.random.randint(0,100,size=(200,3))
代码语言:javascript
复制
mc = keras.callbacks.ModelCheckpoint('F:\\model.h5')
m.fit(x,y,callbacks=[mc])
代码语言:javascript
复制
Epoch 1/1
200/200 [==============================] - 0s 70us/step - loss: -622.8262
代码语言:javascript
复制
m = keras.models.load_model('F:\\model.h5', custom_objects={'custom_loss': custom_loss})
代码语言:javascript
复制
m.fit(x,y)
代码语言:javascript
复制
Epoch 1/1
200/200 [==============================] - 0s 244us/step - loss: -800.1645
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64858908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档