使用切片和无调整张量形状

时间:2018-10-05 09:42:53

标签: python tensorflow

我对如何阅读和理解简单的代码感到困惑:

  • 我有一个input形状的张量(19,4,64,64,3)
  • 代码行input[:, None]返回形状为(19, 1, 4, 64, 64, 3)的张量。

我应该如何理解该行的行为?似乎None正在添加尺寸为1的尺寸。但是为什么要在特定位置(19和4之间)添加尺寸?

1 个答案:

答案 0 :(得分:2)

实际上,None添加了新的维度。您也可以为此使用tf.newaxis,这是更明确的恕我直言。

在轴1中添加了新尺寸,因为它是在索引中出现的位置。例如。 input[:, :, None]的形状应为(19,4,1,64,64,3),依此类推。
如果我们在切片中写入所有尺寸,则可能会变得更加清晰:input[:, None, :, :, :, :]。在切片中,:仅表示获取维度的所有元素。因此,通过使用一个:,我们将采用维度0的所有元素,然后“继续”移动至维度1。由于None出现在此处,因此我们知道新的size-1轴应在维度1中。因此,剩余的尺寸将被“推回”。