Keras IndexError: indices sont hors des limites du terrain

voix
11

Je suis nouveau à Keras et im essayant de faire binaire MLP sur un ensemble de données, et continue de recevoir des indices hors limites avec aucune idée pourquoi.

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

Erreur:

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

Est-ce que quelqu'un a une idée pourquoi cela se passe? Im en mesure d'exécuter d'autres modèles très bien

Créé 13/03/2016 à 10:10
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
34

Réponse du commentaire - trainx et Trainy doivent être des tableaux numpy. Vous pouvez convertir la trame de données à numpy tableau en utilisant la as_matrix()méthode. J'ai aussi fait face à ce problème. Il est étrange que Keras ne donne pas de sens message d'erreur.

Créé 22/04/2016 à 15:53
source utilisateur

voix
5

Je suis venu ici à la recherche de la même résolution de problème pour l'auto-sklearn et pandas géants dataframe. La solution consiste à faire passer la trame de données en tant que X X.values. Ie ajustement (X.values, y)

Créé 03/10/2016 à 18:01
source utilisateur

voix
5

De la page officielle Keras:

modèles KERAS sont formés sur les tableaux NumPy de données d'entrée et des étiquettes. Pour la formation d'un modèle, vous utiliserez généralement la fonction d'ajustement.

Pour convertir un dataframe de pandas géants à numpy tableau que vous pouvez utiliser np.array(dataframe). Par exemple:

x_train = np.array(x_train)
Créé 02/02/2017 à 18:25
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more