如何为回归问题的喀拉拉河定义input_shape?

时间:2020-09-15 12:57:58

标签: python tensorflow keras

我有一个CSV文件,其中包含5个特征样本的200000行(200个步骤,每1000个点)。对于回归预测,我试图设计一个LSTM(keras.Sequential()),因为它是一个时间序列问题。当我想使用"tf.keras.Sequential()"在Keras中设计模型时,在第一层中,我遇到了定义input_shape的问题。我使用了input_shape=(train_dataset.shape[0],1,train_dataset.shape[1]),但出现错误。设计的模型如下:

def build_model():
    model = tf.keras.Sequential([
        layers.Dense(128,activation=tf.nn.relu,input_shape=(train_dataset.shape[0],1,train_dataset.shape[1])),
        layers.Dense(128,activation=tf.nn.relu),
        layers.Dense(1)
    ])
    opt = tf.keras.optimizers.Adam(learning_rate=0.001)
    model.compile(loss='mean_squared_error', optimizer=opt, metrics= ['mean_squared_error'])
    
    return model

任何建议将不胜感激

1 个答案:

答案 0 :(得分:0)

input_shape不应包含批次尺寸。使用input_shape=train_dataset.shape[1:]

def build_model():
    model = tf.keras.Sequential([
        layers.Dense(128,activation=tf.nn.relu,input_shape=train_dataset.shape[1:]),
        layers.Dense(128,activation=tf.nn.relu),
        layers.Dense(1)
    ])
    opt = tf.keras.optimizers.Adam(learning_rate=0.001)
    model.compile(loss='mean_squared_error', optimizer=opt, metrics= ['mean_squared_error'])
    
    return model