假设我有一个形状 (batch_size, n)
的张量 y
,它包含整数 . 我正在寻找一个张量流函数,它从输入 y
创建两个新的张量 .
第一个返回值 w1
应该具有形状 (batch_size, n)
并且包含在位置 b,i
,一个超过 y[b,i]
中整数 y[b,i]
中出现的次数 . 如果 y[b,i]
为零,那么 w1[b,i]=0
. 例:
第二个返回值 w2
应该只包含 y
的每个批次(或行)中不同整数(0除外)的数字 .
y=np.array([[ 0, 0, 10, 10, 24, 24], [99, 0, 0, 12, 12, 12]])
w1,w2= get_w(y)
#w1=[[0 , 0 , 0.5, 0.5, 0.5, 0.5], [1, 0, 0, 0.33333333, 0.33333333, 0.33333333]]
#w2=[0.5,0.5]
那么,我怎样才能得到张量流呢?
2 回答
我不知道tensorflow中产生这个的任何单个函数,但是使用列表理解来实现它是相对简单的:
你可以使用tf.unique_with_counts: