2017-05-27 61 views
1

首先,我假設一個低層次有意識的實現會導致最有效的實現(就時間和內存消耗而言)。如何比較Theano和Tensorflow的性能?最高的lvl功能或最低的lvl實現?

我只是想測量他們在一些工作上的表現,這些工作是我目前正在做的工作。目前,我的代碼的結構是這樣

  • Tensorflow
    對於正向傳播我使用tf.nn.dynamic_rnn(),這似乎是相當高的水平給我。然後我限定穿過tf.Variable()輸出偏置和權重,計算與logits tf.matmul()和損失與tf.nn.sparse_softmax_cross_entropy_with_logits() 對於訓練我使用tf.train.AdamOptimizer ().minimize(),這看起來非常高。

  • Theano: My Theano執行看起來更低級別。我從他的網站上描述的丹尼布里茨實施(http://www.wildml.com/2015/10/recurrent-neural-network-tutorial-part-4-implementing-a-grulstm-rnn-with-python-and-theano/),但我做了一些小改動。所述FOWARD傳播幾乎手動進行,宣告內部LSTM幾乎所有操作與theano功能,例如th.nnet.hard_sigmoid()t.tanh()t.ones_like()t.softmax( )numpy用於矩陣乘法的函數。該函數通過循環使用theano.scan()函數。反向傳播也幾乎是手動進行的,使用梯度微積分的th.grad()和具有用於更新等待的更新的th.function()

那麼你怎麼看?這是一個公平的比較?或者我應該在2個實現之間尋求更加相等數量的封裝?如果你願意,我可以包含更多關於我的代碼的細節,甚至可以包含它的草圖。這類問題涉及自然語言處理和生成。也許我會包括更多的感受。我將使用2級的LSTM。

回答

2

你可以看看這個爲基準Theano,Tensorflow和火炬的RNN性能深度學習框架:

https://github.com/glample/rnn-benchmarks

鑑於這是發展非常快的領域,我可能是有點老了,但您可以將其用作更新基準的起點。

+0

謝謝,我會檢查出來。 –