Tensorflow函数随笔2

tf.where()
where(condition, x=None, y=None, name=None)

condition, x, y 相同维度,condition是bool型值,True/False

返回值是对应元素,condition中元素为True的元素替换为x中的元素,为False的元素替换为y中对应元素

x只负责对应替换True的元素,y只负责对应替换False的元素,x,y各有分工

由于是替换,返回值的维度,和condition,x , y都是相等的。

示例:

import tensorflow as tf
x = [[1,2,3],[4,5,6]]
y = [[7,8,9],[10,11,12]]
condition3 = [[True,False,False],
             [False,True,True]]
condition4 = [[True,False,False],
             [True,True,False]]
with tf.Session() as sess:
    print(sess.run(tf.where(condition3,x,y)))
    print(sess.run(tf.where(condition4,x,y)))  

结果:

 [[ 1  8  9]
    [10  5  6]]
 [[ 1  8  9]
    [ 4  5 12]]

 tf.squeeze()

squeeze(
    input,
    axis=None,
    name=None,
    squeeze_dims=None
)

函数参数:

  • input:A Tensor.该input挤.
  • axis:一个可选列表ints.默认为[].如果指定,只能挤压列出的尺寸.维度索引从0开始.压缩非1的维度是错误的.必须在范围内[-rank(input), rank(input)).
  • name:操作的名称(可选).
  • squeeze_dims:现在是轴的已弃用的关键字参数.

函数返回值:

一Tensor.与.类型相同input.包含与之相同的数据input,但删除了一个或多个尺寸为1的尺寸.

可能引发的异常:

  • ValueError:当两个squeeze_dims和axis指定.

从张量形状中移除大小为1的维度.

给定一个张量 input,该操作返回一个与已经移除的所有大小为1的维度具有相同类型的张量.如果您不想删除所有大小为1的维度,则可以通过指定 axis 来删除特定的大小为1的维度.

示例

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
tf.shape(tf.squeeze(t))  # [2, 3]

或者,要删除特定的大小为1的维度:

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
tf.shape(tf.squeeze(t, [2, 4]))  # [1, 2, 3, 1]
 
posted @ 2020-12-21 22:44  番茄--  阅读(62)  评论(0)    收藏  举报