模型预测常数

时间:2021-02-01 17:14:45

标签: python tensorflow keras deep-learning loss-function

我正在编写一个基于 tensorflow 的深度学习线性回归算法来预测未来的股票价格。我目前面临的问题是预测在整个学习过程中保持不变。我尝试了不同的学习率,我有足够的数据。我该如何解决这个问题?

# model definition
model = tf.keras.Sequential([
    tf.keras.layers.Dense(10, activation='linear', input_shape=(7,), kernel_regularizer='l2'),  # input shape required
    tf.keras.layers.Dense(40, activation="linear", kernel_regularizer='l2'),
    tf.keras.layers.Dense(50, activation="relu", kernel_regularizer='l2'),
    tf.keras.layers.Dense(1, activation="linear", kernel_regularizer='l2')
])

# learning rate control
initial_learning_rate = 0.5
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
    initial_learning_rate,
    decay_steps=40000,
    decay_rate=0.05,
    staircase=True)

# loss calculation
loss_fn = tf.keras.losses.MeanAbsoluteError()

# model
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=lr_schedule, clipnorm=1),
              loss=loss_fn,
              metrics=['accuracy'])

2 个答案:

答案 0 :(得分:0)

如果你不能“学习”任何东西,那几乎肯定是你的学习率。尝试小到 1e-5,然后从那里开始。

答案 1 :(得分:0)

既然是你的回归问题,那么在第三层使用activation='linear'。此外,您的学习率似乎相当高。使用1e^-4

相关问题