前向传播缓慢 - 训练时间正常
Forward propagation slow - Training time normal
我无法弄清楚为什么当我执行前向传播时我的代码非常慢。有问题的代码可以在这里找到:https://github.com/rekkit/lazy_programmer_ml_course/blob/develop/05_unsupervised_deep_learning/poetry_generator_rnn.py
我正在将我的代码的性能与以下代码的性能进行比较:https://github.com/lazyprogrammer/machine_learning_examples/blob/master/rnn_class/srn_language_tf.py
区别是当我运行
self.session.run(self.predict(x_batch), feed_dict={...})
或者当我运行
self.returnPrediction(x_batch)
运行大约需要 0.14 秒。现在这可能听起来不像是一场灾难,但那是每个句子 0.14 秒(我正在制作一个 RNN 来预测句子中的下一个单词)。由于有 1436 个句子,我们正在查看每个 epoch 大约 3 分 20 秒。如果我想训练 10 个 epoch,那就是半小时。远远超过其他代码。
有人知道问题出在哪里吗?我能看到的唯一区别是我已经模块化了代码。
提前感谢您的帮助。
我已经弄明白了。每次调用 predict 方法时,我都会重建图形。相反,在 fit 方法中我定义了一个变量:
preds = self.predict(self.tfX)
然后每次我需要预测时,而不是使用:
predictions = self.session.run(self.predict(x_batch), feed_dict={...})
我使用:
predictions = self.session.run(self.preds, feed_dict={...})
我无法弄清楚为什么当我执行前向传播时我的代码非常慢。有问题的代码可以在这里找到:https://github.com/rekkit/lazy_programmer_ml_course/blob/develop/05_unsupervised_deep_learning/poetry_generator_rnn.py
我正在将我的代码的性能与以下代码的性能进行比较:https://github.com/lazyprogrammer/machine_learning_examples/blob/master/rnn_class/srn_language_tf.py
区别是当我运行
self.session.run(self.predict(x_batch), feed_dict={...})
或者当我运行
self.returnPrediction(x_batch)
运行大约需要 0.14 秒。现在这可能听起来不像是一场灾难,但那是每个句子 0.14 秒(我正在制作一个 RNN 来预测句子中的下一个单词)。由于有 1436 个句子,我们正在查看每个 epoch 大约 3 分 20 秒。如果我想训练 10 个 epoch,那就是半小时。远远超过其他代码。
有人知道问题出在哪里吗?我能看到的唯一区别是我已经模块化了代码。
提前感谢您的帮助。
我已经弄明白了。每次调用 predict 方法时,我都会重建图形。相反,在 fit 方法中我定义了一个变量:
preds = self.predict(self.tfX)
然后每次我需要预测时,而不是使用:
predictions = self.session.run(self.predict(x_batch), feed_dict={...})
我使用:
predictions = self.session.run(self.preds, feed_dict={...})