2016-03-13 6 views
11

Kerasを初めて使用していて、データセットでバイナリMLPを実行しようとしていて、理由が分からないインデックスを取得し続けています。Keras IndexError:インデックスが境界外にあります

from keras.models import Sequential 
from keras.layers.core import Dense, Dropout, Activation 
from keras.optimizers import SGD 

model = Sequential() 
model.add(Dense(64, input_dim=20, init='uniform', activation='relu')) 
model.add(Dropout(0.5)) 
model.add(Dense(64, activation='relu')) 
model.add(Dropout(0.5)) 
model.add(Dense(1, activation='sigmoid')) 

model.compile(loss='binary_crossentropy', 
      optimizer='rmsprop') 
model.fit(trainx, trainy, nb_epoch=20, batch_size=16) # THROWS INDICES ERROR 

エラー:

model.fit(trainx, trainy, nb_epoch=20, batch_size=16) 

Epoch 1/20 
Traceback (most recent call last): 

    File "<ipython-input-6-c81bd7606eb0>", line 1, in <module> 
model.fit(trainx, trainy, nb_epoch=20, batch_size=16) 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\keras\models.py", line 646, in fit 
shuffle=shuffle, metrics=metrics) 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\keras\models.py", line 271, in _fit 
ins_batch = slice_X(ins, batch_ids) 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\keras\models.py", line 65, in slice_X 
return [x[start] for x in X] 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\keras\models.py", line 65, in <listcomp> 
return [x[start] for x in X] 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\pandas\core\frame.py", line 1963, in __getitem__ 
return self._getitem_array(key) 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2008, in _getitem_array 
return self.take(indexer, axis=1, convert=True) 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\pandas\core\generic.py", line 1371, in take 
convert=True, verify=True) 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\pandas\core\internals.py", line 3619, in take 
indexer = maybe_convert_indices(indexer, n) 

    File "C:\Users\Thiru\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1750, in maybe_convert_indices 
raise IndexError("indices are out-of-bounds") 

IndexError: indices are out-of-bounds 

誰もがなぜこれが起こっている任意のアイデアを持っていますか?私はちょうど良い他のモデルを実行することができる

+3

trainxとtrainyはこれでnumpyの配列 –

答えて

33

答えから - trainxとtrainyはnumpyの配列でなければなりません。 as_matrix()メソッドを使用してデータフレームをnumpy配列に変換できます。私もこの問題に直面しました。 Kerasが意味のあるエラーメッセージを出さないことは変です。

5

ここでは、auto-sklearnとpandasデータフレームと同じ問題の解決方法を探していました。解決策は、XデータフレームをX値として渡すことです。私。あなたはnp.array(データフレーム)を使用することができますnumpyの配列にパンダのデータフレームを変換するにはofficial Keras Page:

Keras models are trained on Numpy arrays of input data and labels. For training a model, you will typically use the fit function.

から(X.values、y)は

5

に合います。例:x_train = np.array(x_train)。

+0

する必要があり、モデルは、URLのような、文字列値が浮動小数点数あると考えて:服女の子の服ベビー女の子の服ドレス「 『』とValueError:float型に文字列を変換できませんでした」 –

関連する問題