两个奇怪的TF索引操作和比较类函数

tf.invert_permutation(x)

这是个奇怪的函数,之所以说奇怪,是因为学到目前为止,我还不清楚它有什么用,这个函数的功能是这么描述的:将x中元素的值当作索引,返回新的张量,用公式表达如下:

设张量X=[x1,x2,x3,…xn],那么Y=tf.invert_permutation(X)=[yxi=i]
还是举例说明吧:
设X=[3,2,0,1,4]
x0=3,x1=2,x2=0,x3=1,x4=4
yx0=y3=0
yx1=y2=1
yx2=y0=2
yx3=y1=3
yx4=y4=4
于是Y=[2,3,1,0,4]
tf.where(condition,x,y)
condition是一个元素为True或者False的张量,shape必须和x,y一致,当只有condition一个参数的时候,函数返回True的索引,比如tf.where([True,False,False,True])=[[0],[3]]。注意函数返回的是列向量。
当函数有x,y参数的时候,函数进行如下操作:产生一个和X,Y shape相同的张量,在这个张量(比如说是一个二维张量Z)中,zij的值由conditionij决定,如果conditionij==True,那么zij=xij,否则zij=yij
还是看一个例子吧:

x2,2,34,5,6
conditionTrue,False,FalseFalse,True,True
y1,0,31,5,1
z=where(condition,x,y)2,0,31,5,6
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值