我在使用tensorflow(两台不同机器上的0.12.1和0.11.0rc1)时遇到了一个问题,即手动执行前向传播和梯度计算非常慢(另一方面,训练工作正常) .

特别是,对于1个图像,调用 sess.run(predictions, feed_dict={...} 需要1到1.2秒 . 作为参考,在caffe'中实现的相同架构大约需要100-150毫秒,这与我重新实现的论文中报告的时间一致 . 通过网络通过 tf.gradients 进行反向传播需要相似的时间(~1.5s) . 同样,caffe中的相同架构大约需要1/10的时间 .

我检查了前向道具中的GPU使用情况,以确保它实际上是在使用GPU并且它在 sess.run 期间正确尖峰(分别在两台机器上使用带有cuda 8的GTX TITAN Z和带有cuda 7.5的TITAN X)

caffe中相同的架构(一个相当简单的转换器,https://arxiv.org/abs/1603.06041)工作正常的事实让我觉得我的张量流代码或配置有问题,但我不知道从哪里开始 . 有什么建议?

谢谢!

编辑:添加代码的链接 .

Tensorflow网络和转发功能:http://pastebin.com/y9jKBdsV(忽略转发功能看起来像dcgan的事实,问题仍然存在)

Caffe原型和前向功能:http://pastebin.com/DqWdbHU8