请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

试图保存seq2seq+attention模型中的decoder/encoder为SavedModel时出错

我试图在老师代码的末尾加上以下SavedModel的步骤:

  1. 代码
    #保存参数+模型结构
    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)

  2. 错误信息
    TypeError: call() missing 1 required positional argument: ‘hidden’;
    此处hidden也就是encoder的call函数中的参数,初始化时的hidden。

TF 版本是2.0.0-rc0

请教老师是什么问题呢?

正在回答

2回答

这个是因为缺少一个参数,对于子类实现的模型,如果想要保存成saved model,那么call函数中应该只有input作为参数。多了就不行。这点是因为我们的模型比较复杂所导致的。

目前来看,可使用的保存模型的方法就是checkpoint,即保存模型的参数。

1 回复 有任何疑惑可以回复我~
  • 提问者 OliverSong #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-08-12 13:24:26
正十七 2019-10-24 21:57:44

同学你好,关于这个问题,我发现是个常见问题,已经放到git的readme的pending issue中,稍后会更新到代码库,届时我再来问题下提醒。 https://git.imooc.com/coding-344/tensorflow2.0_course

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号