我正在尝试对表格数据进行建模,将横截面数据与时间序列组件结合起来,基本上是使用我的X的最后n条记录来预测一个Y值。
我使用的是tensorflow和keras的最新版本
def build_model(input_shape): model = Sequential([ Dense(units = (len(input_variables) * 2) - 1 , activation= activation_func , input_shape=input_shape , kernel_initializer = ini_method), Dense(1)]) optimizer = Adam(lr) model.compile( loss='mse', optimizer=optimizer, metrics=['mae', 'mse']) return modelmodel = build_model(n,m)model.fit(X,y)
X的形状是(k,n,m)
y的形状是(k,1)
这是我使用的模型。我给它的输入形状是(n,m)。然而,我得到的输出是(n,1),而我想要的是(,1)的输出。
我错过了什么?
回答:
您需要将(n, m)维度展平,可以在输入之前进行,也可以使用Keras的展平层。例如:
model = Sequential([ Flatten(), Dense(units = (len(input_variables) * 2) - 1 , activation= activation_func , input_shape=input_shape , kernel_initializer = ini_method), Dense(1)])