我正在嘗試使用 ray 找到最佳超引數:
tuner = tune.Tuner(
train,
param_space=hyperparams1,
tune_config=tune.TuneConfig(
num_samples=200,
metric="score",
mode="max",
scheduler=ASHAScheduler(grace_period=6),
),
run_config=RunConfig(stop={"score": 290},
checkpoint_config=CheckpointConfig(checkpoint_score_attribute="score"))
)
有時我的模型過擬合,結果隨著時間的推移變得更糟,即我得到類似100, 200, 220, 140, 90, 80. Ray 向我展示了當前狀態的“最佳結果”,但它僅從最后一次迭代中選擇最佳值(即,上述結果的最佳值是80)。
我確信具有較高值的??結果會更好,因此最好根據整個歷史記錄選擇最佳結果,而不是最后一個值。
有沒有辦法讓它使用整個火車歷史來選擇最佳結果?或者當我看到模型不再改進時,我應該手動中斷訓練嗎?或者它已經保存了所有結果,我只需要在完成后過濾它們?
我已經看到這個Checkpoint best model for a trial in ray tune并已添加CheckpointConfig到我的代碼中,但似乎沒有幫助:我仍然看到最后的結果
uj5u.com熱心網友回復:
報告指標的整個歷史記錄都保存在其中Result,您可以通過 訪問它result.metrics_dataframe。有關您可以在每個結果中訪問的內容的示例,請參閱用戶指南的這一部分。
可以使用ResultGrid. tuner.fit()API將ResultGrid.get_dataframe(filter_metric=<your-metric>, filter_mode=<min/max>)回傳一個 DataFrame,過濾掉每個試驗報告結果的歷史記錄。有關執行此操作的示例,請參見本節底部。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/522568.html
標籤:机器学习超参数射线
上一篇:軟投票機器學習演算法
