Tensorflow API nn.softmax
、nn.sparse_softmax_cross_entropy_with_logits
、tf.nn.rnn
などが与えられているとすれば、サンプルをバッチで行として配置することが慣例であると思われます。Tensorflowの例を行または列として使用しますか?
ニューラルネットワークにおける順方向パスは、tf.matmul(input_batch, W) + b
であり、input_batch
は、形状が[n_samples, input_size]
の行列です。 n_samples
は、APIでしばしば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次元(バッチ次元)です。なぜなら、このディメンションは通常は存在し、他のディメンションはオプションなので、最初のディメンションにするのが理にかなっていると思います。 –