我正在嘗試根據自己的產量建立一個線性模型
# Create features
X = np.array([-7.0, -4.0, -1.0, 2.0, 5.0, 8.0, 11.0, 14.0])
# Create labels
y = np.array([3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 21.0, 24.0])
model = tf.keras.Sequential([
tf.keras.layers.Dense(50, activation = "elu", input_shape = [1]),
tf.keras.layers.Dense(1)
])
model.compile(loss = "mae",
optimizer = tf.keras.optimizers.Adam(learning_rate = 0.01),
metrics = ["mae"])
model.fit(X, y, epochs = 150)
當我使用上述 X 和 y 資料進行訓練時,損失值從正常值開始。
experience salary
0 0 2250
1 1 2750
2 5 8000
3 8 9000
4 4 6900
5 15 20000
6 7 8500
7 3 6000
8 2 3500
9 12 15000
10 10 13000
11 14 18000
12 6 7500
13 11 14500
14 12 14900
15 3 5800
16 2 4000
但是當我使用這樣的資料集時,初始損失值從 800 開始。(與上面的模型 btw 相同)
這可能是什么原因?
uj5u.com熱心網友回復:
你的學習率非常高。您應該選擇低得多的初始學習率,例如0.0001或0.00001。
否則,您將在最后一層(默認一層)上使用“線性”激活以及正確的損失函式和度量。另請注意,batch_size在沒有明確提及的情況下,默認值為32.
更新:由問題的作者確定,欠擬合也是問題的基礎。添加更多層有助于解決問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493864.html
