Tensorflow 如何为二维数据构建LSTM网络?

Tensorflow 如何为二维数据构建LSTM网络?,tensorflow,keras,lstm,recurrent-neural-network,Tensorflow,Keras,Lstm,Recurrent Neural Network,我看到Keras中的LSTM接受(批大小、时间步长、数据大小)作为输入形状。但我想知道是否有一种简单的方法可以将这些扩展到4维? 例如,我们如何将lstm应用于移动MNIST数据集,该数据集的图像大小为64×64?您可以使用CNN模型提取图像的特征,然后再将其输入lstm # define CNN model cnn = Sequential() cnn.add(Conv2D(...)) cnn.add(MaxPooling2D(...)) cnn.add(Flatten()) # defin

我看到Keras中的LSTM接受(批大小、时间步长、数据大小)作为输入形状。但我想知道是否有一种简单的方法可以将这些扩展到4维?
例如,我们如何将lstm应用于移动MNIST数据集,该数据集的图像大小为64×64?

您可以使用CNN模型提取图像的特征,然后再将其输入lstm

# define CNN model
cnn = Sequential()
cnn.add(Conv2D(...))
cnn.add(MaxPooling2D(...))
cnn.add(Flatten())

# define LSTM model
model = Sequential()
model.add(TimeDistributed(cnn, ...))
model.add(LSTM(..))
model.add(Dense(...))

如果您需要一个资源来解释为什么我们使用
TimeDistributed
包装层:@AnnaKrogager,有没有一种方法我不必使用卷积?基本上,我想要一个每个位置都有一个LSTM的网络。我不确定你的确切意思,但也许你可以使用一个时间分布的LSTM?这将对数据的每个时间片应用LSTM(沿轴1)。只需首先确保以正确的方式排列轴即可。然而,这对于图像数据来说没有多大意义。