首页 > 解决方案 > Keras 3D 输入到 1D 输出

问题描述

我正在尝试对结合横截面和时间序列分量的表格数据进行建模,本质上是使用我的 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 model

model = build_model(n,m)

model.fit(X,y)

X 形状为 (k,n,m)

y 的形状为 (k,1)

这是我正在使用的模型。我给它的输入形状是(n,m)。但是,当我想要 (,1) 输出时,我得到 (n,1) 输出。

我错过了什么?

标签: python-3.xtensorflowmachine-learningkerasneural-network

解决方案


您需要预先或使用 Keras 展平层展平 (n, m) 尺寸。例如

model = Sequential([
    Flatten(),
    Dense(units = (len(input_variables) * 2) - 1
                 , activation= activation_func
                 , input_shape=input_shape
                 , kernel_initializer = ini_method),      
    Dense(1)])

推荐阅读