[英]Amazon SageMaker: TrainingJobAnalytics returns only one timestamp for inbuilt xgboost
我正在嘗試使用TrainingJobAnalytics
在 SageMaker 上使用 XGBoost 繪制訓練作業的訓練和驗證損失曲線。 訓練作業成功完成,我可以在 CloudWatch 日志中看到訓練和驗證 rmse 值。
但是,當我嘗試使用TrainingJobAnalytics
在我的筆記本中獲取它們時,我只能獲取單個時間戳的指標,而不是全部。
我的代碼如下:
metrics_dataframe = TrainingJobAnalytics(training_job_name=job_name).dataframe()
出了什么問題,我該如何解決?
我去了這個兔子洞,但讓我分享我在“開箱即用”上監控 SageMaker 訓練數據的經驗。
TL; 博士; 監控以 1 分鍾的間隔分辨率運行,因此任何短於一分鍾的日志都將被忽略。 SageMaker Debugger 也作為替代方案進行了探索。 SMD 標量簡約示例要點。
所以,首先,同樣的問題已經被提到過幾次:
然而,他們都沒有得到關於為什么會發生這種情況的一個很好的解釋。 所以我決定通讀亞馬遜的官方文檔。
https://aws.amazon.com/premiumsupport/knowledge-center/cloudwatch-retrieve-data-point-metrics/
如果指標是高分辨率指標(以低於 1 分鍾的間隔推送),請確認推送到指標的數據點並將 --storage resolution 參數設置為 1。如果沒有此配置,CloudWatch 不會存儲分分鍾的數據點,並將它們聚合為一分鍾的數據點。 在這些情況下,無法檢索子分鍾內的數據點。
https://aws.amazon.com/cloudwatch/faqs/
問:我可以從自定義指標中獲得什么分辨率?
https://docs.aws.amazon.com/sagemaker/latest/dg/training-metrics.html#define-train-metrics
Amazon CloudWatch 支持高分辨率自定義指標,其最高分辨率為 1 秒。 但是,分辨率越高,CloudWatch 指標的生命周期就越短。 對於 1 秒頻率分辨率,CloudWatch 指標可使用 3 小時。 有關 CloudWatch 指標的分辨率和生命周期的更多信息,請參閱 Amazon CloudWatch API 參考中的 GetMetricStatistics。
https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html#cloudwatch-metrics-jobs
指標以 1 分鍾的頻率提供。
因此,基本上對於我的場景,Amazon CloudWatch 不是適合我需求的工具。
我決定探索SageMaker Debugger
,哦,天哪,太難了。 從理論上講,它也可以開箱即用。 它可能確實如此,但不是以一種微不足道的“調用記錄器”的方式。 你需要:
但我必須承認,如果您是一名亞馬遜工程師並且知道如何使用它以及何時使用它,它會非常強大。
最后,我決定編寫一個簡單的本地調試器,它監視單個值然后顯示它 - 花了我大約 8-10 個小時,因為我沒有遵循他們的約定(並且文檔從未涵蓋“可能的最簡單示例”) . 在這里提供它作為要點:
https://gist.github.com/yoandinkov/d431ffef708599cb7f24a653305d1b8f
這是基於以下參考資料:
要完成這個“愛麗絲在(不是)仙境中”的體驗,請使用 W&B或Tensorboard 。 否則,您將需要大量時間和陡峭的學習曲線來了解“開箱即用”的情況。 一段時間后可能會有所幫助,我不知道。 (我個人目前不會使用它)
讓我們不要忘記最重要的部分 - 在這個龐大而奇怪的互聯網場所探索無數可能性的同時享受樂趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.