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]

浙公网安备 33010602011771号