Keras-conv1d 用于不平衡时间序列分类的时间序列



输入形状为

X_train.shape
Out[29]: (90000, 9)

这是我的模型:

def cnn_1d(window_size,nb_input_series):
    model = Sequential()
    model.add(Conv1D(32, 9, activation='relu', input_shape=(window_size, nb_input_series)))
    model.add(Conv1D(32, 9, activation='relu'))
    model.add(MaxPooling1D(2))
    model.add(Dropout(0.25))
    model.add(Conv1D(64, 9, activation='relu'))
    model.add(Conv1D(64, 9, activation='relu'))
    model.add(MaxPooling1D(pool_size=2))
    model.add(Dropout(0.25))
    model.add(Flatten())
    model.add(Dense(50, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(1, activation='sigmoid'))

model=cnn_1d(1,X_train.shape[1])

但错误引发

ValueError: Negative dimension size caused by subtracting 9 from 1 for 'conv1d_11/convolution/Conv2D' (op: 'Conv2D') with input shapes: [?,1,1,9], [1,9,9,32].

帮助需要

  1. 我应该使用嵌入吗?

  2. 需要重塑吗?

提前致谢...

Conv1D 层接受 3D 输入。您的X_train应该重塑成

(no_samples, steps, input_dim)

你将不得不重塑你的数据

(no_of_samples/timesteps,timesteps,input_dim)

最新更新