如何使用 Tensorflow 为张量添加维度

Anu*_*nuj 5 python numpy tensorflow

我有reformat使用 numpy 将 a 转换label(256,)label(256,2)形状的方法。

现在我想对形状为 (256,) 的张量执行相同的操作

我的代码看起来像这样 (num_labels=2) :--

def reformat(dataset, labels):
  dataset = dataset.reshape((-1, image_size, image_size,num_channels)).astype(np.float32)
  labels = (np.arange(num_labels)==labels[:,None]).astype(np.float32)
  return dataset, labels
Run Code Online (Sandbox Code Playgroud)

umu*_*tto 7

您可以使用tf.expand_dims()添加新维度。

In [1]: import tensorflow as tf    
        x = tf.constant([3., 2.])
        tf.expand_dims(x, 1).shape

Out[1]: TensorShape([Dimension(2), Dimension(1)])
Run Code Online (Sandbox Code Playgroud)

您也可以使用tf.reshape()来实现此目的,但建议您使用 Expand_dims,因为如果可以满足新形状,这也会将一些值带到新维度。

In [1]: tf.reshape(x, [2, 1])
Out[1]: TensorShape([Dimension(2), Dimension(1)])
Run Code Online (Sandbox Code Playgroud)