【发布时间】:2019-12-14 07:39:19
【问题描述】:
我有一个(samples, 9) 形状的y_train 数据集。我的X_train 输入是(samples, 30, 1) 的形状。
这些贯穿一个构建为的模型:
def create_model(input_shape, outputs):
i = Input(shape=input_shape)
x = Dense(256, activation="relu")(i)
x = Dropout(0.5)(x)
x = Dense(128, activation="relu")(x)
x = Dropout(0.5)(x)
x = Dense(64, activation="relu")(x)
x = Dropout(0.5)(x)
x = Flatten()(x)
# Optimize each binary output independently.
o = list(map(lambda _: Dense(1, activation='sigmoid')(x), range(outputs)))
m = Model(i, o)
m.compile('adam', loss='binary_crossentropy', metrics=['accuracy'])
return m
model = create_model((30, 1), 9)
这会产生训练错误:
检查模型目标时出错:您使用的 Numpy 数组列表 传递给您的模型的大小不是模型预期的大小。预期的 查看 9 个数组,但得到了以下 1 个数组的列表:
[array([[1., 1., 1., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 1., 1., 1.],
[0., 0., 0., ..., 0., 0., 0....
我尝试了y_train 形状的变体,(9, samples, 1) 和 (samples, 1, 9)。 keras 想看到我的(samples, 9) 数组形状如何变化?
【问题讨论】:
标签: python numpy tensorflow keras