0
我想在Tensorflow中有效地實現矩陣元素多樣性的概念,使得它可以在每次迭代的神經網絡訓練中執行。更精確地,在Tensorflow中計算大範圍矩陣的計數(或譜)
- 輸入:一個大的矩陣,整數
H x L
從[0,2^K)
其中K
是大的A
。 - 輸出:整數的向量或矩陣的譜,
s
的大小爲H*L + 1
其中s[i]
表示重複i
次的[0, 2^K)
中的整數。 - 計算考慮因素:
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
不幸的是,這種方法的主要問題是,擴大到one_hot形式爲中等大小的K
變得計算上不可行並可能遇到內存不足的問題。在Tensorflow中有更有效的方法嗎?