4

Theano でインデックスのベクトルを 0 と 1 の行列に変換するための最良の (エレガントで効率的な) 方法は何ですか?

v = t.ivector()  # the vector of indices
n = t.scalar()   # the width of the matrix
convert = <your code here>
f = theano.function(inputs=[v, n], outputs=convert)

例:

n_val = 4
v_val = [1,0,3]
f(v_val, n_val) = [[0,1,0,0],[1,0,0,0],[0,0,0,1]]
4

3 に答える 3

1

次のように簡単です。

convert = t.eye(n,n)[v]

恒等行列全体を構築する必要のない、より効率的な解決策がまだあるかもしれません。これは、n が大きく v が短い場合に問題になる可能性があります。

于 2014-06-17T13:19:09.633 に答える