【发布时间】:2019-08-05 21:24:19
【问题描述】:
我正在使用 Keras 在神经网络方面迈出第一步。我只是尝试使用一个 1dconv 层,来自一个看起来正确的例子。我只更改输入值的形状以适合我的训练数据(2200,513)513 对应的特征,2200 的长度,如果我的训练数据对应于我的目标,我希望只有两个输出来设置。这就是模型:
模型总结:
Layer (type) Output Shape Param #
=================================================================
conv1d_37 (Conv1D) (None, 2191, 500) 2565500
_________________________________________________________________
conv1d_38 (Conv1D) (None, 2182, 500) 2500500
_________________________________________________________________
max_pooling1d_10 (MaxPooling (None, 727, 500) 0
_________________________________________________________________
conv1d_39 (Conv1D) (None, 718, 160) 800160
_________________________________________________________________
conv1d_40 (Conv1D) (None, 709, 160) 256160
_________________________________________________________________
global_average_pooling1d_10 (None, 160) 0
_________________________________________________________________
dense_10 (Dense) (None, 2) 322
=================================================================
Total params: 6,122,642
Trainable params: 6,122,642
Non-trainable params: 0
_________________________________________________________________
None
当我训练数据时出现此错误,我的最后一层没有 (674197,) 的适当大小...我很困惑,有什么帮助吗? 谢谢
我已经把最后一层改成了674197的大小,但这没有任何意义,并且训练在两个epoch后停止,没有改善。
model_m = Sequential()
model_m.add(Conv1D(500, 10, activation='relu', input_shape=(2200,513)))
model_m.add(Conv1D(500, 10, activation='relu'))
model_m.add(MaxPooling1D(3))
model_m.add(Conv1D(160, 10, activation='relu'))
model_m.add(Conv1D(160, 10, activation='relu'))
model_m.add(GlobalAveragePooling1D(data_format='channels_last'))
model_m.add(Dropout(0.5))
model_m.add()
model_m.add(Dense(2, activation='softmax'))
ValueError: Error when checking target: expected dense_10 to have shape (2,) but got array with shape (674197,)
我希望输出应该是 2,所以我想保持这个形状,我应该修改模型的某些部分,但是呢?
【问题讨论】:
-
问题出在数据中,错误是关于形状为 (674197,) 的目标,而 (2,) 是预期的。为什么你的标签有这种形状? (674197,)
-
是的(我觉得很笨),事实上我使用了一些愚蠢的代码将标签的目标更改为向量,其形状为 674197 长度。现在已经解决了。
标签: python keras neural-network conv-neural-network softmax