【发布时间】:2020-07-10 22:01:15
【问题描述】:
由于我是深度学习领域的新手,我面临一个关于卷积网络 (1D) 输入形状的奇怪问题。输入是 13 个特征的归一化值,共有 7866 个样本可用
x_train_shape (7866, 13)
每个特征的目标是 0 或 1。
y_train.shape (7866, 13)
我正在使用以下简单的 1D conv 网络只是为了看看它的性能。
from keras.models import Sequential
model = Sequential()
model.add(Conv1D(filters=64, kernel_size=1,
activation='relu', input_shape=(13,1)))
model.add(Conv1D(filters=64, kernel_size=1, activation='relu'))
model.add(Dropout(0.5))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(13, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
history = model.fit(x_train, y_train, epochs=20, verbose=0)
它显示了网络的摘要,但也引发了这个错误:
检查输入时出错:预期 conv1d_1_input 有 3 尺寸,但得到了形状为 (7866, 13) 的数组
我尝试从 here 和 here 实施不同的解决方案。所以当
input_shape = (13,)
被使用,它会引发一个不同的错误,如下所示:
输入 0 与层 conv1d_1 不兼容:预期 ndim=3,找到 ndim=2
谁能告诉我这个网络的正确 input_shape 是什么?为什么?
注: x_train 和 y_train 采用 pandas 数据帧格式。这是否会导致任何问题,我是否必须将其转换为另一种格式?
【问题讨论】:
标签: python pandas keras deep-learning conv-neural-network