试图保存seq2seq+attention模型中的decoder/encoder为SavedModel时出错
来源:10-9 模型预测实现
![](http://img1.sycdn.imooc.com/user/5b8cf0e70001a18202000200-100-100.jpg)
OliverSong
2019-09-25
我试图在老师代码的末尾加上以下SavedModel的步骤:
-
代码
#保存参数+模型结构
encoder_model_path = './trained_encoder/model’
decoder_model_path = ‘./trained_decoder/model’tf.saved_model.save(encoder, encoder_model_path)
tf.saved_model.save(decoder, decoder_model_path) -
错误信息
TypeError: call() missing 1 required positional argument: ‘hidden’;
此处hidden也就是encoder的call函数中的参数,初始化时的hidden。
TF 版本是2.0.0-rc0
请教老师是什么问题呢?
写回答
2回答
-
这个是因为缺少一个参数,对于子类实现的模型,如果想要保存成saved model,那么call函数中应该只有input作为参数。多了就不行。这点是因为我们的模型比较复杂所导致的。
目前来看,可使用的保存模型的方法就是checkpoint,即保存模型的参数。
112020-08-12 -
正十七
2019-10-24
同学你好,关于这个问题,我发现是个常见问题,已经放到git的readme的pending issue中,稍后会更新到代码库,届时我再来问题下提醒。 https://git.imooc.com/coding-344/tensorflow2.0_course
20
相似问题