我无法弄清楚为什么执行正向传播时我的代码非常慢。有问题的代码可以在这里找到: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个句子,那么每个时期大约需要3分20秒。如果我想训练10个纪元,那是半小时。比其他代码需要的更多。

有谁知道可能是什么问题?我可以看到的唯一区别是我已经对代码进行了模块化。

我在这里先向您的帮助表示感谢。

最佳答案

我知道了。每次调用预报方法时,我都会重建图形。相反,在fit方法中,我定义了一个变量:

preds = self.predict(self.tfX)


然后每次我需要预测时,不要使用:

predictions = self.session.run(self.predict(x_batch), feed_dict={...})


我用:

predictions = self.session.run(self.preds, feed_dict={...})

关于python - 前向传播慢-训练时间正常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49865478/

10-12 19:15