0
Tensorflowの行列要素の多様性の概念を効率的に実装して、ニューラルネットワークトレーニングの各繰り返しで実行できるようにしたいと考えています。より正確には、Tensorflowの広い範囲にわたる行列のバンド幅(またはスペクトル)の計算
- 入力:大行列、
K
が大きい[0,2^K)
の範囲の整数H x L
のA
。 - 出力:整数のベクトル、またはマトリックスのスペクトル
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
残念ながら、このアプローチの主な問題は、適度K
のサイズのためone_hotフォームに拡大することは計算上不可能になることですメモリ不足の問題にも対処できます。 Tensorflowでこれを行うより効率的な方法がありますか?