2016-06-28 12 views
-1

私はKerasニューラルネットワークで3D NumpyArrayを使いたいと思っています。Theanoの3D numpy配列

ホットエンコーディングが1つあるため、アレイは3Dアレイになりました。

[ 
    [[0,1,0,0], [1,0,0,0]], 
    [[0,0,0,1], [1,1,0,0]], 
    [[0,0,1,0], [0,0,0,1]] 
    ] 

Kerasだけ2D配列を計算することができますので、私の質問は、どのように私は次元を削減し、連番ののkeras NNにそれを使用することができますか?

私は現在、エラーを取得する:

TypeError: ('Bad input argument to theano function with name "D:\\Python27\\lib\\site-packages\\keras\\backend\\theano_backend.py:503" at index 0(0-based)', 'Wrong number of dimensions: expected 2, got 3 with shape (32L, 10L, 12L).') 
+0

を行うことをお勧めしたいあなたは2次元配列がなりたいものを投稿する(との範囲を使用してください0sと1sだけではなく、数字で、あなたが望むユニークなソリューションを見ることができます)。 – tom10

+0

私は1つのホットエンコーディングを使用します。高い数字の範囲では意味がありません。 – AlcuPala

答えて

0

あなたは1D配列にそれを作るためにnumpy.ndarray.flattenを使用することができます。例:このことから

import numpy as np 
a = np.array(
    [ 
     [[0, 1, 0, 0], [1, 0, 0, 0]], 
     [[0, 0, 0, 1], [1, 1, 0, 0]], 
     [[0, 0, 1, 0], [0, 0, 0, 1]] 
    ] 
    ) 
a.flatten() 

、あなたが行でそれを分割したい場合は、私は

import numpy as np 
a = np.array(
    [ 
     [[0, 1, 0, 0], [1, 0, 0, 0]], 
     [[0, 0, 0, 1], [1, 1, 0, 0]], 
     [[0, 0, 1, 0], [0, 0, 0, 1]] 
    ] 
    ) 
a = map(np.ndarray.flatten, a) 
+0

ありがとうございますが、Theanoは2Dアレイを食べています。 – AlcuPala

関連する問題