相关疑难解决方法(0)

ValueError:输入0与层lstm_13不兼容:预期ndim = 3,找到ndim = 4

我正在尝试进行多级分类,这里是我的训练输入和输出的详细信息:

train_input.shape =(1,95000,360)(95000长度输入数组,每个元素是360长度的数组)

train_output.shape =(1,95000,22)(22门课程)

model = Sequential()

model.add(LSTM(22, input_shape=(1, 95000,360)))
model.add(Dense(22, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
model.fit(train_input, train_output, epochs=2, batch_size=500)
Run Code Online (Sandbox Code Playgroud)

错误是:

ValueError:输入0与层lstm_13不兼容:期望ndim = 3,在行中找到ndim = 4:model.add(LSTM(22,input_shape =(1,95000,360)))

请帮帮我,我无法通过其他答案解决.

python lstm keras recurrent-neural-network

13
推荐指数
4
解决办法
3万
查看次数

Keras 中 LSTM 层的 4D 输入

我有形状为(10000, 20, 15, 4)where num samples = 10000, num series in time = 20, height = 15, 的数据weight = 4。所以我有15x4随时间分布的表。这是我想在这些数据上训练它的模型:

...
model.add((LSTM(nums-1,return_sequences=True,input_shape=(20,15,4), activation='relu')))
model.add((LSTM(nums-1,return_sequences=False,input_shape=(20,15,4), activation='tanh')))
model.add(Dense(15,activation='relu'))
...
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

ValueError: Input 0 is incompatible with layer lstm_1: expected ndim=3, 
found ndim=4
Run Code Online (Sandbox Code Playgroud)

如何定义具有 4D 输入形状的 LSTM 层?

python machine-learning lstm keras tensorflow

6
推荐指数
1
解决办法
3670
查看次数

预期ndim = 3,找到的ndim = 2

我是Keras的新手,我正在尝试实现Sequence to Sequence LSTM。特别是,我有一个具有9个特征的数据集,并且我想预测5个连续值。

我将训练和测试集及其形状分别划分为:

X TRAIN (59010, 9)

X TEST (25291, 9)

Y TRAIN (59010, 5)

Y TEST (25291, 5)
Run Code Online (Sandbox Code Playgroud)

目前,LSTM非常简单:

model = Sequential()
model.add(LSTM(100, input_shape=(9,), return_sequences=True))
model.compile(loss="mean_absolute_error", optimizer="adam", metrics= ['accuracy'])

history = model.fit(X_train,y_train,epochs=100, validation_data=(X_test,y_test))
Run Code Online (Sandbox Code Playgroud)

但是我有以下错误:

ValueError:输入0与lstm_1层不兼容:预期ndim = 3,找到的ndim = 2

谁能帮我?

python lstm keras tensorflow

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

层序的输入 0 与预期的 ndim=3 层不兼容,发现 ndim=2。收到完整形状:[无,1]

我正在使用 keras 进行文本分类。预处理和矢量化后,我的训练和验证数据详细信息如下所示:

print(X_train.shape, ',', X_train.ndim, ',', type(X_train))
print(y_train.shape, ',', y_train.ndim, ',', type(y_train))
print(X_valid.shape, ',', X_valid.ndim, ',', type(X_valid))
print(y_valid.shape, ',', y_valid.ndim, ',', type(y_valid))
print(data_dim)
Run Code Online (Sandbox Code Playgroud)

输出是:

(14904,) , 1 , <class 'numpy.ndarray'>
(14904,) , 1 , <class 'numpy.ndarray'>
(3725,) , 1 , <class 'numpy.ndarray'>
(3725,) , 1 , <class 'numpy.ndarray'>
15435
Run Code Online (Sandbox Code Playgroud)

那么模型定义是:

model = Sequential()
model.add(LSTM(100, input_shape=(data_dim,1 ), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(200))
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics = ['accuracy'])
model.summary()
Run Code Online (Sandbox Code Playgroud)

模型总结:

在此处输入图片说明

模型拟合:

model.fit(X_train,y_train, validation_data = (X_valid, y_valid),
          batch_size=batch_size, epochs=epochs)
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个错误?

----> …
Run Code Online (Sandbox Code Playgroud)

python model-fitting keras tensorflow

2
推荐指数
1
解决办法
3923
查看次数