![](/img/trans.png)
[英]How do I get r_squared from loss minimization with constraints using numpy?
[英]R_squared vs epochs
早上好,我是一名 Python 初學者,我正在嘗試構建我的第一個神經網絡。 有沒有辦法繪制 R2 進化與時代的關系? 我通過以下方式評估 R2: r2_score(y_test_pred, y_test)
。 我以這種方式構建了一個完全連接的神經網絡:
optimizer = tf.keras.optimizers.Adam(lr=0.001)
model = Sequential()
# ,kernel_regularizer=l2(c), bias_regularizer=l2(c)
model.add(Dense(100, input_shape = (X_train.shape[1],), activation = 'relu',kernel_initializer='glorot_uniform'))
model.add(Dropout(0.2))
model.add(Dense(100, activation = 'relu',kernel_initializer='glorot_uniform'))
model.add(Dropout(0.2))
model.add(Dense(100, activation = 'relu',kernel_initializer='glorot_uniform'))
model.add(Dense(1,activation = 'linear',kernel_initializer='glorot_uniform'))
model.compile(loss = 'mse', optimizer = optimizer, metrics = ['mse'])
history = model.fit(X_train, y_train, epochs = 100,
validation_split = 0.1, shuffle=False, batch_size=250
)
history_dict = history.history
`
數據集由 18 個特征和 1 個標簽組成,是一個回歸任務。
你只需要在你的compile
行中添加它。
model.compile(loss = 'mse', optimizer = optimizer, metrics = ['mse', r2_score])
如果你想這樣做,你需要創建一個 keras 可以理解的指標,
import tf.keras.backend as K
def r2_score(y_true, y_pred):
SS_res = K.sum(K.square(y_true - y_pred))
SS_tot = K.sum(K.square(y_true - K.mean(y_true)))
return ( 1 - SS_res/(SS_tot + K.epsilon()) )
代碼取自kaggle
抱歉我忘了添加 Tensorboard 部分。
如果您想在訓練期間查看損失/指標的演變,您可以使用 Tensorboard,如文檔中所示
logdir = "logs/" + datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=logdir)
history = model.fit(X_train, y_train, epochs = 100,
validation_split = 0.1, shuffle=False, batch_size=250, calllbacks=[tensorboard_callback])
然后在終端中使用此行訪問 Tensorboard
tensorboard --logdir logs
然后,您可以通過訪問localhost:6006
在瀏覽器上訪問 tensorboard
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.