我有一个信号,信号值为 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)。
谢谢!
答案 0 :(得分:0)
我终于设法找到答案:我必须确保将数组放置在另一个数组中(例如1-D数组),如下所示:
[[-13.2172165 -13.0935545 -13.149217 ... -1.8910782 -1.5482559 -1.6714929]]
我可以使用:
x_train.reshape((1,1024))
。