[英]ValueError: Error when checking target: expected dense_24 to have 2 dimensions, but got array with shape (16, 10, 1)
[英]ValueError: Error when checking target: expected dense_108 to have 2 dimensions, but got array with shape (36020, 10, 2)
我正在用Convolution1D
层构建一个卷积神经网络。 我的网络模型如下。 密集层的输入似乎产生一个形状数组(36020,10,2)
。
#network model
cnn = Sequential()
cnn.add(Convolution1D(64, 3, border_mode="same",activation="relu",input_shape=(25,1)))
cnn.add(MaxPooling1D(pool_length=(2)))
cnn.add(Flatten())
cnn.add(Dense(128, activation="relu"))
cnn.add(Dropout(0.5))
cnn.add(Dense(2, activation="softmax"))
我正在尝试拟合模型的数据是:
X_train=[[[1.0000000e+00]
[3.0122564e-08]
[1.6120090e-05]
...
[0.0000000e+00]
[9.4886076e-08]
[3.0170717e-08]]
[[1.0000000e+00]
[0.0000000e+00]
[0.0000000e+00]
...
[0.0000000e+00]
[0.0000000e+00]
[1.2500001e-12]]
[[1.0000000e+00]
[0.0000000e+00]
[0.0000000e+00]
...
[0.0000000e+00]
[0.0000000e+00]
[3.1249999e-11]]
...
[[0.0000000e+00]
[1.0842798e-05]
[1.0943735e-06]
...
[0.0000000e+00]
[9.6288932e-09]
[1.3172292e-10]]
[[0.0000000e+00]
[2.8011250e-01]
[8.8251436e-01]
...
[0.0000000e+00]
[4.1974179e-04]
[3.6202004e-04]]
[[0.0000000e+00]
[8.3799750e-06]
[9.5839296e-06]
...
[0.0000000e+00]
[8.8683461e-09]
[1.0194775e-10]]]
y_train = [[[0. 1.]
[1. 0.]
[1. 0.]
...
[1. 0.]
[1. 0.]
[1. 0.]]
[[0. 1.]
[1. 0.]
[1. 0.]
...
[1. 0.]
[1. 0.]
[1. 0.]]
[[0. 1.]
[1. 0.]
[1. 0.]
...
[1. 0.]
[1. 0.]
[1. 0.]]
...
[[1. 0.]
[1. 0.]
[1. 0.]
...
[1. 0.]
[1. 0.]
[1. 0.]]
[[1. 0.]
[1. 0.]
[1. 0.]
...
[1. 0.]
[1. 0.]
[1. 0.]]
[[1. 0.]
[1. 0.]
[1. 0.]
...
[1. 0.]
[1. 0.]
[1. 0.]]]
我不断收到有关致密层尺寸的错误。 我真的是神经网络编程的新手。
问题在于,模型的输出形状(None, 2)
与标签数组的形状(36020, 10, 2)
(None, 2)
不一致,您在训练模型时会为其提供形状。 您需要将标签数组的形状更改为(num_samples, 2)
或者只是更改图层的参数和模型的体系结构,以使其具有(None, 10, 2)
(num_samples, 2)
的输出形状(即与(36020, 10, 2)
)。 关于哪种方法是正确的方法,我无法进一步评论,因为这完全取决于您正在解决的问题的实际输入和输出形式,并且您在这方面没有提供任何信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.