Python 张量流中大范围矩阵的单元数(或谱)计算
我想在Tensorflow中有效地实现矩阵元素多样性的概念,这样它可以在神经网络训练的每次迭代中执行。更准确地说,Python 张量流中大范围矩阵的单元数(或谱)计算,python,tensorflow,Python,Tensorflow,我想在Tensorflow中有效地实现矩阵元素多样性的概念,这样它可以在神经网络训练的每次迭代中执行。更准确地说, 输入:一个大矩阵,A的整数H x L范围为[0,2^K),其中K较大 输出:一个整数向量或矩阵的谱,s大小H*L+1,其中s[i]表示[0,2^K)中重复i次的整数数 计算注意事项:hl=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,
- 输入:一个大矩阵,
的整数A
范围为H x L
,其中[0,2^K)
较大K
- 输出:一个整数向量或矩阵的谱,
大小s
,其中H*L+1
表示s[i]
中重复[0,2^K)
次的整数数i
- 计算注意事项:
和hl=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的计数,然后,如果你调用bincount,你会有一个向量,在位置c,你有元素的数量,有计数c,这就是我想你想要的