tensorflow - 恢复保存的训练变量后,保存的 tensorflow NLP 模型不会输出任何内容

标签 tensorflow machine-learning nlp deep-learning seq2seq

受到 github 存储库的启发,我为聊天机器人构建了一个 seq2seq 模型。为了训练聊天机器人,我使用了我的 Facebook 聊天记录。因为我的大部分聊天就像用英语写的印地语单词。我必须从头开始训练词嵌入。我知道该模型将在 CPU 上进行大约 30-40 小时(批量大小 24 的 500000 次迭代)的训练。所以,我学会了使用

tf.train.saver()

保存变量并在将来恢复它们的方法。

为了查看模型的进度,我创建了模型,以便在每 250 次迭代时输出五个输入文本序列的回复。 在训练开始时,我得到空白输出(因为 token 是最常见的)。但经过几千次迭代后,它开始给出最常见的单词作为输出。经过 90,000 次迭代后,它给出了一些不合逻辑但不同类型的输出。因此,我停止了那里的训练。

现在,当我从最新的检查点恢复变量时。我再次得到空行作为输出。这是正常行为还是我的代码中存在某种错误。

代码: Full code

代码片段: (从最新检查点恢复的代码)

sess = tf.Session()
saver = tf.train.Saver()
saver.restore(sess, tf.train.latest_checkpoint('models/'))
sess.run(tf.global_variables_initializer())

(在迭代循环中保存变量的代码)

    if (i % 10000 == 0 and i != 0):
        savePath = saver.save(sess, "models/pretrained_seq2seq.ckpt", global_step=i)

最佳答案

兄弟,每次你使用全局值初始化器时它都会重置,:/。仅在训练模型时第一次使用 sess.run(tf.global) 。使用保护程序保存模型后,将其注释掉。因此,下次您恢复模型时,它不会重置,并且应该可以正常工作。

关于tensorflow - 恢复保存的训练变量后,保存的 tensorflow NLP 模型不会输出任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51600404/

相关文章:

opencv - 如何使用 SIFT/SURF 作为机器学习算法的特征?

python - Tensorflow 中的 Seq2Seq,但我收到 ValueError : Input 0 of layer gru_cell_3 is incompatible with the layer:

typescript - 为什么来自 tensorflowjs 的 model.predict() 总是返回相同的预测?

python - 如何使用 tensorflow 计算多标签前k个精度?

python - 如何标记 NLTK 中的字符串句子?

python - Python中的顺序模式匹配算法

machine-learning - 路易斯女士 |每个意图/应用程序的最大话语数

python - 如何在 linux 上安装 tensorflow 0.10.0?

machine-learning - OneHotEncoder 不会删除管道中的分类

python - Keras LSTM 层中的 4D 输入