您的当前位置:首页正文

TensorFlow用expand_dim()来增加维度的方法

2020-06-04 来源:钮旅网
TensorFlow⽤expand_dim()来增加维度的⽅法

TensorFlow中,想要维度增加⼀维,可以使⽤tf.expand_dims(input, dim, name=None)函数。当然,我们常⽤

tf.reshape(input, shape=[])也可以达到相同效果,但是有些时候在构建图的过程中,placeholder没有被feed具体的值,这时就会包下⾯的错误:TypeError: Expected binary or unicode string, got 1

在这种情况下,我们就可以考虑使⽤expand_dims来将维度加1。⽐如我⾃⼰代码中遇到的情况,在对图像维度降到⼆维做特定操作后,要还原成四维[batch, height, width, channels],前后各增加⼀维。如果⽤reshape,则因为上述原因报错

one_img2 = tf.reshape(one_img, shape=[1, one_img.get_shape()[0].value, one_img.get_shape()[1].value, 1])

⽤下⾯的⽅法可以实现:

one_img = tf.expand_dims(one_img, 0)

one_img = tf.expand_dims(one_img, -1) #-1表⽰最后⼀维

在最后,给出官⽅的例⼦和说明

# 't' is a tensor of shape [2]

shape(expand_dims(t, 0)) ==> [1, 2]shape(expand_dims(t, 1)) ==> [2, 1]shape(expand_dims(t, -1)) ==> [2, 1]# 't2' is a tensor of shape [2, 3, 5]

shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5]shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5]shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]

Args:

input: A Tensor.

dim: A Tensor. Must be one of the following types: int32, int64. 0-D (scalar). Specifies the dimension index at which toexpand the shape of input.

name: A name for the operation (optional).Returns:

A Tensor. Has the same type as input. Contains the same data as input, but its shape has an additional dimension of size 1added.

以上这篇TensorFlow⽤expand_dim()来增加维度的⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

因篇幅问题不能全部显示,请点此查看更多更全内容