如何在keras模型中拟合3D矩阵?
How to fit a 3D matrix in keras model?
我正在使用 keras 创建回归模型。我有 10
145 * 5
个十位数的矩阵。我在 keras 模型中拟合 10
145 * 5
矩阵时遇到问题。
X
是输入矩阵
In: X.shape
Out: (10, 145, 5)
y
是目标矩阵
In: y.shape
Out: (10,)
对于每个 145 * 5
矩阵,目标矩阵中将有一个值
制作模型
In: model = Sequential([
Dense(32, input_dim=145),
Activation('sigmoid'),
Dense(output_dim=10)
])
虽然上一行没有抛出任何错误或警告,但我很确定在这种情况下它不是适合模型的正确方法。
In: model.compile(optimizer='sgd',loss='mse')
目前没问题。但是当我试图拟合矩阵时
In: model.fit(X, y.reshape(-1, 1))
在这一行之后,我得到了一个很长的回溯,最终说
ValueError: Error when checking model input: expected dense_input_1 to have 2 dimensions, but got array with shape (10, 145, 5)
请帮助我正确拟合模型中的矩阵。谢谢!
使用 input_shape
而不是 input_dim
。此外,由于输出的维数正在变化,您需要使用 Flatten
或 Reshape
作为维数之一。
from keras.layers import Flatten
model = Sequential([
Dense(32, input_shape=(145,5)),
Flatten(),
Activation('sigmoid'),
Dense(output_dim=10)
])
model.summary()
使用 model.summary()
检查模型的结构以便更好地理解。
我正在使用 keras 创建回归模型。我有 10
145 * 5
个十位数的矩阵。我在 keras 模型中拟合 10
145 * 5
矩阵时遇到问题。
X
是输入矩阵
In: X.shape
Out: (10, 145, 5)
y
是目标矩阵
In: y.shape
Out: (10,)
对于每个 145 * 5
矩阵,目标矩阵中将有一个值
制作模型
In: model = Sequential([
Dense(32, input_dim=145),
Activation('sigmoid'),
Dense(output_dim=10)
])
虽然上一行没有抛出任何错误或警告,但我很确定在这种情况下它不是适合模型的正确方法。
In: model.compile(optimizer='sgd',loss='mse')
目前没问题。但是当我试图拟合矩阵时
In: model.fit(X, y.reshape(-1, 1))
在这一行之后,我得到了一个很长的回溯,最终说
ValueError: Error when checking model input: expected dense_input_1 to have 2 dimensions, but got array with shape (10, 145, 5)
请帮助我正确拟合模型中的矩阵。谢谢!
使用 input_shape
而不是 input_dim
。此外,由于输出的维数正在变化,您需要使用 Flatten
或 Reshape
作为维数之一。
from keras.layers import Flatten
model = Sequential([
Dense(32, input_shape=(145,5)),
Flatten(),
Activation('sigmoid'),
Dense(output_dim=10)
])
model.summary()
使用 model.summary()
检查模型的结构以便更好地理解。