Python 3.x 在训练、保存和加载编码器-解码器模型时,TensorFlow出现@tf.function问题 我正在开发一个使用SEQ2SEQ模型的神经机器翻译系统。 我遵循了TensorFlow的教程

Python 3.x 在训练、保存和加载编码器-解码器模型时,TensorFlow出现@tf.function问题 我正在开发一个使用SEQ2SEQ模型的神经机器翻译系统。 我遵循了TensorFlow的教程,python-3.x,tensorflow,deep-learning,tensorflow2.0,tf.keras,Python 3.x,Tensorflow,Deep Learning,Tensorflow2.0,Tf.keras,培训完模型后,我想保存模型并在其他地方使用该模型,无论我是谁,在@tf.function的使用方面都会遇到以下问题 #在解码器中使用@tf.function会导致训练错误 TypeError:正在传递函数构建代码之外的op “图形”张量。有可能有图张量 通过包含 函数构建代码中的tf.init_作用域。 例如,以下功能将失败: @功能 def具有_init_作用域(): my_常数=tf.常数(1) 使用tf.init_scope(): 已添加=我的_常数*2 图形张量的名称为:LuongAtt

培训完模型后,我想保存模型并在其他地方使用该模型,无论我是谁,在@tf.function的使用方面都会遇到以下问题

  • #在解码器中使用@tf.function会导致训练错误

    TypeError:正在传递函数构建代码之外的op “图形”张量。有可能有图张量 通过包含 函数构建代码中的tf.init_作用域。 例如,以下功能将失败: @功能 def具有_init_作用域(): my_常数=tf.常数(1) 使用tf.init_scope(): 已添加=我的_常数*2 图形张量的名称为:LuongAttention/memory\u layer/Tensordot:0

  • #在解码器中不使用@tf.function会训练模型,但会给出保存错误

    AssertionError:尝试导出引用未跟踪资源张量的函数(“LuongAttention/memory\u layer/Tensordot:0”,shape=(32,11,1024),dtype=float32)。TensorFlow对象(例如tf.Variable)必须通过将函数捕获的对象分配给被跟踪对象的属性或直接分配给主对象的属性来跟踪函数捕获的对象

    引用此张量的可跟踪Python对象(来自gc.get_referers,限制为两跳):

  • #解码器中不使用@tf.函数训练模型并运行一次模型,保存模型,但加载后给出错误

    TypeError:参数'cell'()不是RNNCell:'output\u size'属性缺失,'state\u size'属性缺失,'get\u initial\u state'方法是必需的

  • 下面是复制错误的代码:GoogleColab链接


    我们非常感谢您在这个方向上提出的任何建议,谢谢

    我建议您查看tensorflow github上的问题页面,并可能将您的问题发布到该页面。因此,我已在此处打开了该问题:谢谢您的时间