首先,我假設一個低層次有意識的實現會導致最有效的實現(就時間和內存消耗而言)。如何比較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。
謝謝,我會檢查出來。 –