Python 3.x 为什么tf.random.truncated_normal可以得到一个不是向量的形状,即使它说它只接收向量的形状?

Python 3.x 为什么tf.random.truncated_normal可以得到一个不是向量的形状,即使它说它只接收向量的形状?,python-3.x,tensorflow,tensor,Python 3.x,Tensorflow,Tensor,我正在Python中使用TensorFlow 我通读了这本书的文档 输入“shape”得到一维张量或python数组,即向量(根据) 然而,在我使用的例子中,“形状”是一个4-D张量。或者它被认为是一个向量?也许我对向量和张量的定义有问题 def weight_variable(shape, name = 'noname'): initial = tf.truncated_normal(shape, stddev=0.1) return tf.Variable(initial, name

我正在Python中使用TensorFlow

我通读了这本书的文档 输入“shape”得到一维张量或python数组,即向量(根据)

然而,在我使用的例子中,“形状”是一个4-D张量。或者它被认为是一个向量?也许我对向量和张量的定义有问题

def weight_variable(shape, name = 'noname'):
  initial = tf.truncated_normal(shape, stddev=0.1)
  return tf.Variable(initial, name = name)

W_conv1 = weight_variable([5, 5, 3, 32], 'W_conv1')

所以,在理解张量时,有一个小错误。张量可以有不同的“等级”。单个标量(如1)是秩0张量。像[1,2,3,4]这样的列表/向量是秩1张量。二维矩阵如[[0,0],[0,0]]是秩2张量,三维矩阵是秩3张量,依此类推。这里的输入是向量或秩1张量,不是四维张量


我很笨,“形状”本身是一个一维张量,但这并不意味着输出张量是一个向量。请看下面的答案和相关博客: