Tensorflow 光谱图数据的LSTM输入形状

Tensorflow 光谱图数据的LSTM输入形状,tensorflow,machine-learning,keras,lstm,spectrogram,Tensorflow,Machine Learning,Keras,Lstm,Spectrogram,我得到了一个形状像nxtf的numpy数组,其中n是光谱图的数量,t是时间样本,f是频率样本 代码如下: print(train.shape) # this would print (4431,399,101) inputs = Input(shape=(399, 101)) encoded = LSTM(50, activation="relu", return_sequences=True)(inputs

我得到了一个形状像
nxtf
的numpy数组,其中n是光谱图的数量,t是时间样本,f是频率样本

代码如下:

print(train.shape) # this would print (4431,399,101)

inputs = Input(shape=(399, 101))

encoded = LSTM(50, 
               activation="relu", 
               return_sequences=True)(inputs)
encoded = LSTM(25, 
               activation="relu", 
               return_sequences=False)(encoded)

decoded = RepeatVector(399)(encoded)
decoded = LSTM(50, 
               activation="relu", 
               return_sequences=True)(decoded)
decoded = LSTM(25, 
               return_sequences=True)(decoded)

autoencoder = Model(inputs, decoded)
encoder = Model(inputs, encoded)

autoencoder.compile(optimizer='adam', 
                    loss='mse',  
                    metrics=['acc'])

autoencoder.fit(train, train_labels, epochs=20, batch_size=32)
它提出:

InvalidArgumentError:不兼容的形状:[32399101]与[32,1]
[[node gradient_磁带/均方误差/广播GradientArgs(已定义 在:1)]] [Op:___推理_训练_功能_7304]


我想错误在输入形状中,但我不理解原因。

您的模型输入需要二维数组,而您的输入数组反映三维。我猜。

LSTM模型需要3D输入(批量大小、时间样本、特征)。批次大小由拟合模型设定,该模型基本上是一次训练迭代中使用的光谱图(训练样本)数量,时间样本为399,然后频率应视为特征。所以我真的不明白出了什么问题。不幸的是,如果不从输入导入和完整的工作流开始查看数据,我无法发表评论。我在驱动器上上载了数据集的简化版本(前十个示例)。它可以作为火车装载,具有相同的影响。关于标签,您可以只做train_labels=np.array(范围(10))