我想在张量流中有效地实现矩阵元素多样性的概念,这样它可以在神经网络训练的每次迭代中执行。更准确地说
A
的整数H x L
范围从[0,2^K)
,其中K
是大的。你知道吗H*L + 1
,其中s[i]
表示在[0, 2^K)
中重复i
次的整数数。你知道吗H x L = 32*400
和K = 16
。这个过程需要在神经网络的每次迭代中运行。你知道吗示例:
A = [[0,0,0,1,1,2,2],
[3,4,4,4,4,5,6]]
K = 3
s = [1,2,2,1,1,0,0,0,0,0,0,0,0,0,0]
幼稚的方法
I = tf.one_hot(A) #Shape: H x L x 2^K
y = tf.reduce_sum(tf.reduce_sum(I,0),1) # Shape: 2^K
s = tf.bincount(y, minLength = H*L + 1) # Shape: H*L + 1
不幸的是,这种方法的主要问题是,对于中等大小的K
扩展到一个热的形式在计算上变得不可行,并且可能会遇到内存不足的问题。在Tensorflow中有没有更有效的方法?你知道吗
如果你在矩阵上调用一次bincount,你会得到一个向量,在位置i,你有元素i的计数,然后,如果你在这个位置调用bincount,你会得到一个向量,在位置c,你有元素的数目,它有计数c,这是我想你想要的。你知道吗
相关问题 更多 >
编程相关推荐