Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Keras + IndexError

I am very new to keras. Trying to build a binary classifier for an NLP task. (My code is motivated from imdb example - https://github.com/fchollet/keras/blob/master/examples/imdb_cnn.py)

Below is my code snippet:

max_features = 30
maxlen = 30
batch_size = 32
embedding_dims = 30
nb_filter = 250
filter_length = 3
hidden_dims = 250
nb_epoch = 3

(Train_X, Train_Y, Test_X, Test_Y) = load_and_split_data()
model = Sequential()
model.add(Embedding(max_features, embedding_dims, input_length=maxlen))
model.add(Convolution1D(nb_filter=nb_filter,filter_length=filter_length,border_mode="valid",activation="relu",subsample_length=1))
model.add(MaxPooling1D(pool_length=2))
model.add(Flatten())
model.add(Dense(hidden_dims))
model.add(Activation('relu'))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='rmsprop', class_mode="binary")
fitlog = model.fit(Train_X, Train_Y, batch_size=batch_size, nb_epoch=nb_epoch, show_accuracy=True, verbose=2)

When I run model.fit(), I get the following error:

/.virtualenvs/nnet/lib/python2.7/site-packages/theano/compile/function_module.pyc in __call__(self, *args, **kwargs)
    857         t0_fn = time.time()
    858         try:
--> 859             outputs = self.fn()
    860         except Exception:
    861             if hasattr(self.fn, 'position_of_error'):

IndexError: One of the index value is out of bound. Error code: 65535.\n
Apply node that caused the error: GpuAdvancedSubtensor1(<CudaNdarrayType(float32, matrix)>, Elemwise{Cast{int64}}.0)
Toposort index: 47
Inputs types: [CudaNdarrayType(float32, matrix), TensorType(int64, vector)]
Inputs shapes: [(30, 30), (3840,)]
Inputs strides: [(30, 1), (8,)]
Inputs values: ['not shown', 'not shown']
Outputs clients: [[GpuReshape{3}(GpuAdvancedSubtensor1.0, MakeVector{dtype='int64'}.0)]]

HINT: Re-running with most Theano optimization disabled could give you a back-trace of when this node was created. This can be done with by setting the Theano flag 'optimizer=fast_compile'. If that does not work, Theano optimizations can be disabled with 'optimizer=None'.
HINT: Use the Theano flag 'exception_verbosity=high' for a debugprint and storage map footprint of this apply node.

Can you please help me resolve this ?

like image 333
Anuj Gupta Avatar asked Oct 28 '15 00:10

Anuj Gupta


People also ask

How to resolve keras error message?

It's weird that Keras does not give meaningful error message. I came here looking for the same issue resolution for the auto-sklearn and pandas dataframe. The solution is to pass the X dataframe as X.values. I.e. fit (X.values,y) Keras models are trained on Numpy arrays of input data and labels.

What is indexerror in Python?

IndexError in Python Author: Aditya Raj Last Updated: December 8, 2021 Lists are one of the most used data structures in Python. You might have got the message “IndexError: list index out of range” when your program ran into an error while using lists. In this article, we will discuss how to avoid this error by studying the IndexError in Python.

How to convert pandas Dataframe to NumPy array in keras?

The solution is to pass the X dataframe as X.values. I.e. fit (X.values,y) Keras models are trained on Numpy arrays of input data and labels. For training a model, you will typically use the fit function. To convert a pandas dataframe to numpy array you can use np.array (dataframe).


1 Answers

You need to Pad the imdb sequences you are using, add those lines:

from keras.preprocessing import sequence
Train_X = sequence.pad_sequences(Train_X, maxlen=maxlen)
Test_X = sequence.pad_sequences(Test_X, maxlen=maxlen)

Before building the actual model.

like image 89
Ohad Zadok Avatar answered Sep 18 '22 14:09

Ohad Zadok