带有keras的一维卷积网络,输入大小错误
1D Convolutional network with keras, error on input size
我正在尝试为我的数据集构建一个卷积神经网络。我的训练数据集有 1209 个示例,每个示例有 800 个特征。
下面是部分代码:
model = Sequential()
model.add(Conv1D(64, 3, activation='linear', input_shape=(1209, 800)))
model.add(GlobalMaxPooling1D())
model.add(Dense(1, activation='linear'))
model.compile(loss=loss_type, optimizer=optimizer_type, metrics=[metrics_type])
model.fit(X, Y, validation_data=(X2,Y2),epochs = nb_epochs,
batch_size = batch_size,shuffle=True)
当我编译这段代码时,出现以下错误:
Error when checking input: expected conv1d_25_input to have 3 dimensions,
but got array with shape (1209, 800)
所以我添加了一个维度,这是我所做的:
X = np.expand_dims(X, axis=0)
X2 = np.expand_dims(X2, axis=0)
然后我得到这个错误:
ValueError: Input arrays should have the same number of samples as target arrays.
Found 1 input samples and 1209 target samples.
我的训练数据现在是这样的形状 (1, 1209, 800),它应该是其他形状吗?
非常感谢阅读本文。
不应在轴 0 X
上扩展维度,而应在轴 2 上扩展。因此,您需要 X = np.expand_dims(X, axis=2)
而不是 X = np.expand_dims(X, axis=0)
。
之后,X
的形状应该是(1209, 800, 1),然后你应该在第一层指定input_shape=(800, 1)
。
我正在尝试为我的数据集构建一个卷积神经网络。我的训练数据集有 1209 个示例,每个示例有 800 个特征。
下面是部分代码:
model = Sequential()
model.add(Conv1D(64, 3, activation='linear', input_shape=(1209, 800)))
model.add(GlobalMaxPooling1D())
model.add(Dense(1, activation='linear'))
model.compile(loss=loss_type, optimizer=optimizer_type, metrics=[metrics_type])
model.fit(X, Y, validation_data=(X2,Y2),epochs = nb_epochs,
batch_size = batch_size,shuffle=True)
当我编译这段代码时,出现以下错误:
Error when checking input: expected conv1d_25_input to have 3 dimensions,
but got array with shape (1209, 800)
所以我添加了一个维度,这是我所做的:
X = np.expand_dims(X, axis=0)
X2 = np.expand_dims(X2, axis=0)
然后我得到这个错误:
ValueError: Input arrays should have the same number of samples as target arrays.
Found 1 input samples and 1209 target samples.
我的训练数据现在是这样的形状 (1, 1209, 800),它应该是其他形状吗?
非常感谢阅读本文。
不应在轴 0 X
上扩展维度,而应在轴 2 上扩展。因此,您需要 X = np.expand_dims(X, axis=2)
而不是 X = np.expand_dims(X, axis=0)
。
之后,X
的形状应该是(1209, 800, 1),然后你应该在第一层指定input_shape=(800, 1)
。