0
ここでは単純な行列を作成しようとしています。バッチ内の各サンプルに対して繰り返します。Kera backend.repeat_elementsが機能しませんか?
ここが行列である。これまでのところ
balanceMatrix = np.array([[[5,10,10],[1,1,1],[1,1,1]]])
print(balanceMatrix.shape)
balanceMatrix = K.constant(balanceMatrix)
print(K.shape(balanceMatrix).eval())
、とても良い、私は期待行列字(1,3,3)を持っています。 ここでは、バッチ内のすべてのサンプル(60000個のサンプル)について繰り返す必要があります。 keras documentationから、私がすべきすべてはこれです:
balanceMatrix = K.repeat_elements(balanceMatrix, 60000,axis=0)
print(K.shape(balanceMatrix).eval())
しかし、これは、私は単純に理解することはできません、次のエラー、発生します
IndexError Traceback (most recent call last)
<ipython-input-28-4356baf13de8> in <module>()
20 balanceMatrix = K.constant(balanceMatrix)
21 print(K.shape(balanceMatrix).eval())
---> 22 balanceMatrix = K.repeat_elements(balanceMatrix, 60000,axis=0)
23 print(K.shape(balanceMatrix).eval())
24
c:\users\ut65\appdata\local\programs\python\python35\lib\site-packages\keras\backend\theano_backend.py in repeat_elements(x, rep, axis)
743 if hasattr(x, '_keras_shape'):
744 y._keras_shape = list(x._keras_shape)
--> 745 repeat_dim = x._keras_shape[axis]
746 if repeat_dim is not None:
747 y._keras_shape[axis] = repeat_dim * rep
IndexError: tuple index out of range
が起こっている何を? 私はnp.repeat(balanceMatrix,60000,axis=0)
で最初にケラールテンソルを作成することができますが、ケラスオプションも同様に働かないといけませんか?
感謝:) - あなたはなぜ知っていますか? ---テストした後、numpyオプションは高速です... –
@Daniel私は旅行していて、私の携帯電話でたくさん書くことができませんでした:/私は正確な理由はわかりませんが、私は同じ問題を抱えていました。過去。私の推測では、Kerasは* inplace *構造を繰り返そうとしており、定数を使用するとクラッシュすることになります。そして、はい、構造体numpyを繰り返すこれらの操作がほぼ常により高速になるためです。しかし、numpyで繰り返してからKerasにすべてを移動すると、Kerasに移動してそこで繰り返すようなパフォーマンスが必要です(十分に大きい繰り返しの場合)。 –