训练自动编码器时模型输入错误

时间:2019-11-12 19:30:27

标签: python tensorflow keras

我有一个信号,信号值为 1024 。当我在控制台中打印时,得到以下输出:

[-13.2172165 -13.0935545 -13.149217  ...  -1.8910782  -1.5482559 -1.6714929]

我一直在使用Keras网站上的一个非常基本的自动编码器代码,如下所示:

encoding_dim = 32
input_signal = Input(shape=(1024,))
encoded = Dense(encoding_dim, activation='relu')(input_signal)
decoded = Dense(1024, activation='sigmoid')(encoded)

autoencoder = Model(input_signal, decoded)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')

autoencoder.fit(my_signal, epochs=50, shuffle=True)

但是,我明白了,但我不知道如何/为什么(尽管仔细阅读了文档):

ValueError: Error when checking input: expected input_1 to have shape (1024,) but got array with shape (1,)

我一直在尝试更改1024,1中的形状输入,但是随后它告诉我它希望输入3维,但是(这是怪异的解释):我的输入是即使我根本没有更改输入,形状为(1024,1)的数组。

我的情况:我有2034个数组(每个数组包含1024个元素),我想将它们放入模型中。现在,我正在尝试使我的自动编码器只能用于1个这样的数组。我知道我需要使用数组的数量设置批处理大小(在这种情况下为2034)。

谢谢!

1 个答案:

答案 0 :(得分:0)

我终于设法找到答案:我必须确保将数组放置在另一个数组中(例如1-D数组),如下所示: [[-13.2172165 -13.0935545 -13.149217 ... -1.8910782 -1.5482559 -1.6714929]]

我可以使用: x_train.reshape((1,1024))