Keras IndexError: índices estão fora dos limites

votos
11

Eu sou novo para Keras e im tentando fazer Binary MLP em um conjunto de dados, e manter índices ficando fora dos limites com idéia do porquê.

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

Erro:

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

Alguém tem alguma idéia de por que isso está acontecendo? Im capaz de executar outros modelos bem

Publicado 13/03/2016 em 08:10
fonte usuário
Em outras línguas...                            


3 respostas

votos
34

Resposta do comentário - trainx e trainy deve ser matrizes numpy. É possível converter o quadro de dados para numpy matriz usando as_matrix()método. Eu também enfrentou esta questão. É estranho que Keras não dá mensagem de erro significativa.

Respondeu 22/04/2016 em 14:53
fonte usuário

votos
5

Eu vim aqui procurando a mesma resolução de problemas para o auto-sklearn e pandas trama de dados. A solução é o de passar a trama de dados X como X.values. Ou seja, o ajuste (X.values, y)

Respondeu 03/10/2016 em 17:01
fonte usuário

votos
5

Do Keras oficial Página:

modelos Keras são treinados em arrays numpy de dados de entrada e etiquetas. Para a formação de um modelo, você normalmente usar a função de ajuste.

Para converter uma trama de dados de pandas para numpy matriz que você pode usar np.array(dataframe). Por exemplo:

x_train = np.array(x_train)
Respondeu 02/02/2017 em 16:25
fonte usuário

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