2016-09-26 36 views
2

給定Tensorflow API nn.softmaxnn.sparse_softmax_cross_entropy_with_logits,tf.nn.rnn等似乎慣例是將樣品作爲批處理中的行放置。Tensorflow示例爲行或列?

然後神經網絡中的正向通過是tf.matmul(input_batch, W) + b,其中input_batch是形狀爲[n_samples, input_size]的矩陣。 API中的n_samples通常被命名爲batch_size。在批次中的所有樣品(行)上廣播添加行向量b

這是神經網絡工作時的一般慣例嗎?我已經閱讀了很多以樣本爲列的研究文章,並使用向前傳遞權矩陣的左乘法。爲什麼這個會議選擇了?

EDIT

本文使用的左側輸入的,以及矢量級聯權重矩陣的乘法,所以,樣品必須是列: http://colah.github.io/posts/2015-08-Understanding-LSTMs/。它在此處的Tensorflow文檔中提到:https://www.tensorflow.org/versions/r0.11/tutorials/recurrent/index.html


BasicLSTMCell的實施是根據這裏https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/rnn_cell.py源基於本文https://arxiv.org/pdf/1409.2329v5.pdf上。你也可以看到左邊的乘法。


最後在這篇文章https://arxiv.org/pdf/1506.00019.pdf中,激活也是列向量。

+0

示例通常是第0維(即批量維度)。我認爲原因是這個維度通常存在,其他維度是可選的,所以它是有意義的,使它成爲第一個 –

回答

0

我認爲這純粹是一個約定的問題,並且(大多數)機器學習研究人員和從業人員已經同意採用[n_samples, input_size]公約。當一個實例不是具有d元素的矢量,而是一般的[d1, d2, ..., dm]數組(例如,一個實例是[width, height, 3]RGB圖像)時,一個優點變得明顯。通過[n_samples, input_size]慣例,您始終可以依靠第一個索引作爲樣本大小。

+0

謝謝,但很多研究文章顯示了另一種方式,請參閱我的編輯。雖然好點,輸入可以有不同的維度,但是這是API約定,而不是矩陣乘法。 – user1506145

相關問題