在 keras 1.2.2 中,我制作了一个具有以下维度的数据集:
X_train: (2000, 100, 32, 32, 3)
y_train: (2000,1)
Run Code Online (Sandbox Code Playgroud)
这里,2000 是实例数(数据的批次),100 是每批中的样本数,32 是图像行和列数,3 是通道数(RGB)。
我写了这段代码,它在 CNN 之后应用了 LSTM,但是,我收到了这个错误:
ValueError: Input 0 is incompatible with layer lstm_layer: expected ndim=3, found ndim=2
这是我的代码:
import keras
from keras.layers import Input ,Dense, Dropout, Activation, LSTM
from keras.layers import Convolution2D, MaxPooling2D, Flatten, Reshape
from keras.models import Sequential
from keras.layers.wrappers import TimeDistributed
from keras.layers.pooling import GlobalAveragePooling1D
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.models import Model
import numpy as np
timesteps=100; …Run Code Online (Sandbox Code Playgroud) machine-learning neural-network lstm keras recurrent-neural-network
在 keras 1.2.2 中,我制作了一个具有以下维度的数据集:
这里,2000 是实例数(数据的批次),100 是每批中的样本数,32 是图像行和列数,3 是通道数(RGB)。
我写了这段代码,它在 CNN 之后应用了 LSTM。我使用了 TimeDistributed 层,并取了 LSTM 输出的平均值,如下所示:

我希望 LSTM 处理每个批次,然后取该批次的 LSTM 输出的平均值。所以,我的总输出(我的标签)是一个 (2000,1) 向量。
我收到此错误:
这是我的代码:
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import keras
from keras.layers import Input ,Dense, Dropout, Activation, LSTM
from keras.layers import Lambda, Convolution2D, MaxPooling2D, Flatten, Reshape
from keras.models import Sequential
from keras.layers.wrappers import TimeDistributed
from …Run Code Online (Sandbox Code Playgroud)