小编Mah*_* K 的帖子

在 Keras 中使用卷积神经网络后使用 LSTM 时的维度错误

在 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

5
推荐指数
1
解决办法
661
查看次数

Keras 中的 CNN-LSTM:维度错误

在 keras 1.2.2 中,我制作了一个具有以下维度的数据集:

  • X_train: (2000, 100, 32, 32, 3)
  • y_train: (2000,1)

这里,2000 是实例数(数据的批次),100 是每批中的样本数,32 是图像行和列数,3 是通道数(RGB)。

我写了这段代码,它在 CNN 之后应用了 LSTM。我使用了 TimeDistributed 层,并取了 LSTM 输出的平均值,如下所示: 在此处输入图片说明

我希望 LSTM 处理每个批次,然后取该批次的 LSTM 输出的平均值。所以,我的总输出(我的标签)是一个 (2000,1) 向量。

我收到此错误:

  • 检查模型目标时出错:预期 lambda_14 有 2 个维度,但得到形状为 (2000L, 100L, 1L) 的数组

这是我的代码:

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

theano deep-learning conv-neural-network lstm keras

3
推荐指数
1
解决办法
7497
查看次数