我正在尝试进行多级分类,这里是我的训练输入和输出的详细信息:
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)))
请帮帮我,我无法通过其他答案解决.
我有形状为(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 层?
我是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
谁能帮我?
我正在使用 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)