如何解决TensorFlow 神经网络回归模型停留在线性
我正在构建一个 TensorFlow 神经网络模型来对某些数据进行回归拟合。最终我的数据将是多维的,但我正在解决一维案例的问题。一维数据如下图所示。我遇到的问题是,当数据是非线性的时,NN 正在将一条线拟合到数据中,而且无论我对模型规范做什么,我似乎都无法改变这种行为。
我的模型(TensorFlow 2.4)的代码如下所示:
# 1D Linear model
model = tf.keras.Sequential([
layers.Dense(128,activation='relu',input_dim=1),layers.Dropout(rate=0.2),layers.Dense(32,activation='relu'),layers.Dense(8,layers.Dense(units=1)])
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=1e0,decay_steps=50,decay_rate=0.2)
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate = lr_schedule),loss='mse')
history = model.fit(train_features,train_labels,epochs = 200,validation_split = 0.2,verbose = 0)
结果很明显是一个试图拟合数据的线性模型:
我认为在较早的层中使用非线性激活函数可以解决问题并获得非线性曲线拟合。我尝试过的事情:更改层数和层中的单元数,添加/删除 dropout,更改 relu
、sigmoid
、tanh
等之间的激活函数,更改学习率(常数或衰减的时间表)...这些都不会产生我正在寻找的行为。
谁能建议我可以对 TF 模型做些什么来使其变为非线性并为这些数据拟合一条曲线?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。