Indexerror:keras convnet1D

时间:2017-01-18 09:45:09

标签: python numpy keras keras-layer

我正在尝试使用CNN 1D进行时间序列预测。我有一个包含30个功能,3个目标和超过3000行的时间序列数据集。

这是我的keras模型

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)

模型编译时没有任何错误,但是当我尝试进行模型拟合时,它给出了这个错误

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

我看到了这个answer,但我的x(功能)和y(目标)已经处于numpy数组形式。怎么解决这个问题?

EDITED

经过一些修修补补后,我发现问题是由我的CNN模型本身引起的。我尝试用简单的神经网络训练相同的数据集,并且没有任何问题。

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)

任何人都知道我的CNN模型有什么问题吗?

0 个答案:

没有答案