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))