Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用切片和非切片修改张量形状_Python_Tensorflow - Fatal编程技术网

Python 使用切片和非切片修改张量形状

Python 使用切片和非切片修改张量形状,python,tensorflow,Python,Tensorflow,我对如何阅读和理解一行简单的代码感到有点困惑: 我有一个形状为(19,4,64,64,3)的张量输入 代码行input[:,None]返回一个形状张量(19,1, 4、64、64、3) 我该如何理解这条线的行为?似乎None正在添加一个尺寸为1的维度。但是为什么要在那个特定的位置(19到4之间)添加这个呢?事实上,None添加了一个新的维度。您还可以使用tf.newaxis来实现这一点,这一点更为明确 新维度添加到轴1中,因为它出现在索引中。例如,输入[:,:,无]应生成形状(19、4、1、

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

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

我该如何理解这条线的行为?似乎
None
正在添加一个尺寸为1的维度。但是为什么要在那个特定的位置(19到4之间)添加这个呢?

事实上,
None
添加了一个新的维度。您还可以使用
tf.newaxis
来实现这一点,这一点更为明确

新维度添加到轴1中,因为它出现在索引中。例如,
输入[:,:,无]
应生成形状(19、4、1、64、64、3)等等。

如果我们在切片中写入所有维度,它可能会变得更清晰:
input[:,None,:,:,:,:,:]
。在切片中,
仅仅意味着获取维度的所有元素。因此,通过使用一个
,我们获取维度0的所有元素,然后“继续”到维度1。由于此处出现了
None
,我们知道新的尺寸1轴应该在尺寸1中。因此,剩下的维度被“向后推”。

好的,谢谢你的解释。现在清楚多了。