首页 文章

Tensorflow示例为行或列?

提问于
浏览
2

鉴于Tensorflow API nn.softmaxnn.sparse_softmax_cross_entropy_with_logitstf.nn.rnn 等,似乎惯例是将样本放置为批处理中的行 .

然后,神经网络中的正向传递是 tf.matmul(input_batch, W) + b ,其中 input_batch 是形状 [n_samples, input_size] 的矩阵 . n_samples 在API中通常命名为 batch_size . 在批处理中的所有样本(行)上广播行向量 b 的添加 .

在使用神经网络时,这是一个通用的惯例吗?我已经阅读了许多研究文章,这些文章将样本作为列,并使用权重矩阵的左乘法进行正向传递 . 为什么选择这个大会?

编辑

本文使用输入左侧的权重矩阵的乘法,以及向量连接,因此样本必须是列:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ . 它在Tensorflow文档中引用:https://www.tensorflow.org/versions/r0.11/tutorials/recurrent/index.html .


BasicLSTMCell的实现基于这篇文章https://arxiv.org/pdf/1409.2329v5.pdf,根据这里的来源https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/rnn_cell.py . 您还可以看到左侧的乘法 .


最后在本文https://arxiv.org/pdf/1506.00019.pdf中,激活也是列向量 .

1 回答

  • 0

    我认为这纯粹是一个惯例问题,而且(大多数)机器学习研究人员和从业者已同意采用 [n_samples, input_size] 惯例 . 当一个实例不是具有 d 元素的向量,而是一般的 [d1, d2, ..., dm] 数组(例如,一个实例是 [width, height, 3] RGB图像)时,一个优势变得明显 . 使用 [n_samples, input_size] 约定,您始终可以依赖第一个索引作为样本大小 .

相关问题