2015-10-28 25 views
6

Tôi rất mới với máy ảnh. Đang cố gắng xây dựng một trình phân loại nhị phân cho một nhiệm vụ NLP. (Mã của tôi được thúc đẩy từ imdb dụ - https://github.com/fchollet/keras/blob/master/examples/imdb_cnn.py)Keras + IndexError

Dưới đây là đoạn mã của tôi:

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) 

Khi tôi chạy model.fit(), tôi nhận được lỗi sau:

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

Bạn có thể giúp tôi giải quyết vấn đề này không?

+0

bạn có thể cung cấp hình dạng x và d của mình không? – 404pio

Trả lời

6

Bạn cần phải Pad chuỗi imdb bạn đang sử dụng, thêm những dòng:

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

Trước khi xây dựng mô hình thực tế.

Các vấn đề liên quan