tensorflow 筆記14:tf.expand_dims和tf.squeeze函數

tf.expand_dims和tf.squeeze函數

1、tf.expand_dims()

Function

tf.expand_dims(input, axis=None, name=None, dim=None)html

Inserts a dimension of 1 into a tensor’s shape. 
在第axis位置增長一個維度函數

Given a tensor input, this operation inserts a dimension of 1 at the dimension index axis of input’s shape. The dimension index axis starts at zero; if you specify a negative number for axis it is counted backward from the end.post

給定張量輸入,此操做在輸入形狀的維度索引軸處插入1的尺寸。 尺寸索引軸從零開始; 若是您指定軸的負數,則從最後向後計數。ui

This operation is useful if you want to add a batch dimension to a single element. For example, if you have a single image of shape [height, width, channels], you can make it a batch of 1 image with expand_dims(image, 0), which will make the shape [1, height, width, channels].this

若是要將批量維度添加到單個元素,則此操做很是有用。 例如,若是您有一個單一的形狀[height,width,channels],您能夠使用expand_dims(image,0)使其成爲1個圖像,這將使形狀[1,高度,寬度,通道]。spa

Args:

input: A Tensor. 
axis: 0-D (scalar). Specifies the dimension index at which to expand the shape of input. 
name: The name of the output Tensor. 
dim: 0-D (scalar). Equivalent to axis, to be deprecated.scala

輸入:張量。
軸:0-D(標量)。 指定擴大輸入形狀的維度索引。
名稱:輸出名稱Tensor。
dim:0-D(標量)。 等同於軸,不推薦使用。code

Returns:

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

For example:blog

 
# '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]

2、tf.squeeze()

Function

tf.squeeze(input, squeeze_dims=None, name=None)

Removes dimensions of size 1 from the shape of a tensor. 
從tensor中刪除全部大小是1的維度

Given a tensor input, this operation returns a tensor of the same type with all dimensions of size 1 removed. If you don’t want to remove all size 1 dimensions, you can remove specific size 1 dimensions by specifying squeeze_dims. 

給定張量輸入,此操做返回相同類型的張量,並刪除全部尺寸爲1的尺寸。 若是不想刪除全部尺寸1尺寸,能夠經過指定squeeze_dims來刪除特定尺寸1尺寸。
若是不想刪除全部大小是1的維度,能夠經過squeeze_dims指定。

Args:

input: A Tensor. The input to squeeze. 
squeeze_dims: An optional list of ints. Defaults to []. If specified, only squeezes the dimensions listed. The dimension index starts at 0. It is an error to squeeze a dimension that is not 1. 
name: A name for the operation (optional).

輸入:張量。 輸入要擠壓。
squeeze_dims:可選的ints列表。 默認爲[]。 若是指定,只能擠壓列出的尺寸。 維度索引從0開始。擠壓不是1的維度是一個錯誤。
名稱:操做的名稱(可選)。

Returns:

A Tensor. Has the same type as input. Contains the same data as input, but has one or more dimensions of size 1 removed.

張量。 與輸入的類型相同。 包含與輸入相同的數據,但具備一個或多個刪除尺寸1的維度。

For example:

 
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
 
shape(squeeze(t)) ==> [2, 3]
 
Or, to remove specific size 1 dimensions:
 
 
 
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
 
shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]
相關文章
相關標籤/搜索