Indexerror: di luar batas kesalahan ukuran di keras convnet1D

Saya mencoba menggunakan CNN 1D untuk prediksi deret waktu. Saya memiliki kumpulan data deret waktu dengan 30 fitur, 3 target, dan lebih dari 3000 baris.

Ini adalah model keras saya

model = Sequential()
model.add(Embedding(64, 10, batch_input_shape=  (100,30))) #100 time steps and 30 features
model.add(Convolution1D(nb_filter=256,
                    filter_length=3,
                    border_mode='valid',
                    activation='relu',
                    subsample_length=1))

model.add(MaxPooling1D())
model.add(Convolution1D(nb_filter=150,
                    filter_length=3,
                    border_mode='valid',
                    activation='relu',
                    subsample_length=1))
model.add(MaxPooling1D())
model.add(Flatten())
model.add(Dropout(0.2))
model.add(Dense(3))
model.add(Activation('tanh'))
optimizer = RMSprop(lr=0.01)
model.compile(loss='mse', optimizer=optimizer)

model.fit(x,y)

Model dikompilasi tanpa kesalahan apa pun tetapi ketika saya mencoba melakukan model fit, model tersebut memberikan kesalahan ini

IndexError: index 124 is out of bounds for size 64
Apply node that caused the error: AdvancedSubtensor1(embedding_17_W, Reshape{1}.0)

Saya melihat jawaban ini tetapi x (fitur) dan y (target) saya sudah dalam bentuk array numpy. Bagaimana cara mengatasi ini?

DIEDIT

Setelah beberapa kali mengutak-atik, saya menemukan bahwa masalahnya disebabkan oleh model CNN saya sendiri. Saya mencoba melatih kumpulan data yang sama dengan jaringan saraf sederhana dan hasilnya berjalan tanpa masalah apa pun.

model = Sequential()
model.add(Dense(30, input_dim=30))
model.add(Activation('tanh'))
model.add(Dense(15))
model.add(Activation('tanh'))
model.add(Dropout(0.2))
model.add(Dense(3))
model.add(Activation('tanh'))
optimizer = RMSprop(lr=0.01)
model.compile(loss='mse', optimizer=optimizer)

model.fit(x,y)

Adakah yang tahu apa yang salah dengan model CNN saya?


person Eka    schedule 18.01.2017    source sumber
comment
Masalah pada lapisan Penyematan Anda: seharusnya 1 + max_index bukannya 64   -  person Alexey Golyshev    schedule 18.01.2017
comment
itu menunjukkan kesalahan yang sama IndexError: index 3 is out of bounds for size 1   -  person Eka    schedule 18.01.2017
comment
Anda tidak mengerti saya. Lihat dokumentasi Keras: input_dim: int > 0. Size of the vocabulary, ie. 1 + maximum integer index occurring in the input data Penyematan Anda harus 125 atau lebih. Evaluasi numpy.max(x) dan ditambah 1 (indeks 0 dicadangkan untuk nilai yang tidak diketahui).   -  person Alexey Golyshev    schedule 18.01.2017