数据时间专业和批量专业有什么区别?

Che*_*ine 7 python machine-learning lstm tensorflow rnn

任何人都可以解释什么数据时间主要批次主要意味着什么是它们之间的区别?

Max*_*xim 16

试图用最简单的术语来表达:这些是相同数据的不同表示(或排列).

二维例子

例如,假设您有这样的数据(仅为了说明而不是真实数据):

1 11 21 31
2 12 22 32
3 13 23 33
...
100 111 121 131
Run Code Online (Sandbox Code Playgroud)

...每行对应一个训练输入,每列对应一个不同的特征.矩阵的大小(batch_size, features),其中batch_size=100features=4.

接下来,在某些情况下,您可能会获得转置矩阵作为输入(例如,它是上一步的输出):

1 2 3 ... 100
11 12 13 ... 111
21 22 23 ... 121
31 32 33 ... 131
Run Code Online (Sandbox Code Playgroud)

在这种情况下,矩阵形状是(features, batch_size).注意:数据本身不会改变.仅更改了阵列尺寸:批次是第一个示例中的0轴,第二个示例中是1轴.另请注意,可以非常轻松有效地交换不同的演示文稿.在tensorflow中,它可以完成tf.transpose.

时间主要与批量主要

在进入RNN时,张量通常会达到3+级,但这个想法保持不变.如果输入是(batch_size, sequence_num, features),则称为批量主要,因为0轴是batch_size.如果是输入(sequence_num, batch_size, features),则同样称为时间主要.该features总是最后一个维度(至少我不知道真正的情况下,当它不是),所以没有进一步的各种命名.

根据网络结构的不同,它可能特别期望批量或时间为0轴,因此输入数据的格式很重要.并且取决于先前的层,可以将这些表示中的任一个馈送到RNN中.因此,可能需要通过库函数或调用者从一种排列到另一种排列的转换.据我所知,批量主要是tensorflow和keras中的默认值,因此它简单地归结为在RNN之前从层生成的形状.

再次:批次主要表示和时间主要表示之间存在一对一的对应关系.任何张量都可以表示为两者.但对于特定的实现,可以预期或需要其中一个.