我正在嘗試將神經(jīng)網(wǎng)絡(luò)用于 python 中的回歸問題,但神經(jīng)網(wǎng)絡(luò)的輸出是一條水平直線,為零。我有一個(gè)輸入,顯然是一個(gè)輸出。這是我的代碼:def baseline_model():? ? # create model? ? model = Sequential()? ? model.add(Dense(1, input_dim=1, kernel_initializer='normal', activation='relu'))? ? model.add(Dense(4, kernel_initializer='normal', activation='relu'))? ? model.add(Dense(1, kernel_initializer='normal'))? ? # Compile model? ? model.compile(loss='mean_squared_error',metrics=['mse'], optimizer='adam')? ? model.summary()? ? return model# evaluate modelestimator = KerasRegressor(build_fn=baseline_model, epochs=50, batch_size=64,validation_split = 0.2, verbose=1)kfold = KFold(n_splits=10)results = cross_val_score(estimator, X_train, y_train, cv=kfold)我也嘗試過不同的權(quán)重初始化器(Xavier 和 He),但沒有成功!非常感謝你的幫助
2 回答

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
首先糾正你的語(yǔ)法,同時(shí)在模型中添加密集層,刪除雙等號(hào)==
和單等號(hào)=
,如下kernal_initilizer
所示
model.add(Dense(1, input_dim=1, kernel_initializer ='normal', activation='relu'))
然后為了讓性能更好做followong
增加隱藏層中隱藏神經(jīng)元的數(shù)量
增加隱藏層的數(shù)量。
如果您仍然遇到同樣的問題,請(qǐng)嘗試更改優(yōu)化器和激活函數(shù)。調(diào)整超參數(shù)可以幫助您收斂到解決方案
編輯 1
您還必須像下面這樣在交叉驗(yàn)證后安裝估算器
estimator.fit(X_train, y_train)
然后你可以測(cè)試測(cè)試數(shù)據(jù)如下
prediction = estimator.predict(X_test) from sklearn.metrics import accuracy_score accuracy_score(Y_test, prediction)

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
這可能是由于數(shù)據(jù)增強(qiáng)或超參數(shù)。您可以調(diào)整超參數(shù),例如學(xué)習(xí)率和迭代次數(shù)。減少紀(jì)元數(shù)。有時(shí),數(shù)據(jù)擴(kuò)充也會(huì)導(dǎo)致這種情況。
MSE 有利于回歸。您也可以嘗試 Huber 損失。
from?tensorflow.keras.losses?import?Huber tf.keras.losses.Huber model.compile(loss=Huber(delta=0.01),metrics=['mse'],?optimizer='adam')
添加回答
舉報(bào)
0/150
提交
取消