我无法弄清楚为什么执行正向传播时我的代码非常慢。有问题的代码可以在这里找到: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/