ValueError at model.适合Keras conv1D(期望min_ndim=3,发现ndim=2).&l



我正在做一个简单的conv1D模型。在做模型的时候。

ValueError: Input 0 of layer sequential is incompatible with the layer: : expected min_ndim=3, found ndim=2. Full shape received: (10, 5)

我使用的基本例子是从这个SO答案-它是如何工作的input_shape变量在Conv1d在Keras?

from keras.models import Sequential
from keras.layers import Dense, Conv1D
import numpy as np
N_FEATURES=5
N_TIMESTEPS=10
X = np.random.rand(100, N_FEATURES)
Y = np.random.randint(0,2, size=100)
# Create a Sequential model
model = Sequential()
# Change the input shape to input_shape=(N_TIMESTEPS, N_FEATURES)
model.add(Conv1D(filters=32, kernel_size=N_TIMESTEPS, activation='relu', input_shape=(N_TIMESTEPS, N_FEATURES)))
# If it is a binary classification then you want 1 neuron - Dense(1, activation='sigmoid')
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

模型。我使用的fit是:

model.fit(X, Y, epochs=150, batch_size=10)

我确实认为数据是为模型拟合准备的,但为什么这个错误出现在这个简单的例子中?我在这里抓我的头,因为我已经看到了很多类似的ValueError,我无法解决它(从我收集的,这似乎是由于不正确的数据输入)。

如有任何建议,我将不胜感激。提前谢谢。

工作示例代码

import tensorflow as tf
N_FEATURES=5
N_TIMESTEPS=10
Batch_size =10
input_shape = (Batch_size, N_TIMESTEPS , N_FEATURES)
x = tf.random.normal(input_shape)
model = tf.keras.layers.Conv1D(
32, 3, activation='relu',input_shape=input_shape[1:])(x)
print(model.shape)

(10, 8, 32)

相关内容

  • 没有找到相关文章

最新更新