2015-10-28 7 views
6

Ich bin Keras sehr neu. Versuchen, einen binären Klassifikator für eine NLP-Aufgabe zu erstellen. (Mein Code ist aus imdb Beispiel motiviert - https://github.com/fchollet/keras/blob/master/examples/imdb_cnn.py)Keras + IndexError

Unten ist mein Code-Schnipsel:

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) 

Als ich model.fit run(), erhalte ich folgende Fehlermeldung:

/.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. 

Können Sie mir bitte helfen, dies zu lösen?

+0

könnten Sie Formen Ihrer x und d bieten? – 404pio

Antwort

6

Sie müssen Pad die imdb Sequenzen Sie verwenden, fügen Sie diese Zeilen:

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

Vor dem eigentlichen Modell zu bauen.