You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于SKLearn Estimator使用SageMaker HyperparameterTuner及获取超参数

SageMaker Scikit-Learn 超参数调优实操指南

一、在train.py中访问传入的超参数

SageMaker会把你在HyperparameterTuner里定义的超参数,通过命令行参数传递给train.py脚本,直接用Python的argparse模块解析就行,示例代码如下:

# train.py
import argparse
from sklearn.ensemble import GradientBoostingClassifier
import joblib

def main():
    parser = argparse.ArgumentParser()
    # SageMaker自动传入的固定路径参数
    parser.add_argument('--train', type=str, default='/opt/ml/input/data/train')
    parser.add_argument('--model-dir', type=str, default='/opt/ml/model')
    
    # 自定义超参数:要和HyperparameterTuner里定义的参数名完全一致
    parser.add_argument('--n-estimators', type=int, default=100)
    parser.add_argument('--max-depth', type=int, default=3)
    
    args = parser.parse_args()
    
    # 这里替换成你的数据加载逻辑
    # X_train, y_train = load_data(args.train)
    
    # 用解析到的超参数初始化模型
    model = GradientBoostingClassifier(
        n_estimators=args.n_estimators,
        max_depth=args.max_depth
    )
    
    model.fit(X_train, y_train)
    
    # 保存模型到指定路径,SageMaker会自动上传到S3
    joblib.dump(model, f'{args.model_dir}/model.joblib')

if __name__ == '__main__':
    main()

注意:超参数名要和调优器里设置的完全匹配,大小写敏感。

二、最优超参数的存储位置

调优结束后,有两种方式获取最优超参数:

  1. 控制台查看:进入SageMaker的「Hyperparameter Tuning Jobs」页面,找到你的调优任务,点击「Best training job」,在「Hyperparameters」标签页就能看到完整的最优参数配置。
  2. Python SDK获取:通过调优器对象直接读取,代码示例:
# 假设你已经创建并启动了调优器tuner
tuner.wait()
best_job_name = tuner.best_training_job()
best_estimator = sagemaker.estimator.Estimator.attach(best_job_name)
print(best_estimator.hyperparameters())

另外,最优训练任务的模型文件和日志会自动存在你创建SKLearn Estimator时指定的output_path对应的S3路径下,格式一般是s3://<你的存储桶>/<前缀>/<最优任务名称>/output/model.tar.gz。

三、可行性与替代方案

可行性

完全可行,SageMaker的SKLearn Estimator完全支持配合HyperparameterTuner做超参数调优,不管是GradientBoostingClassifier还是RandomForest这类Scikit-Learn模型都能适配,只要train.py脚本正确解析超参数即可。

替代方案

如果觉得脚本式配置太繁琐,还可以考虑:

  • SageMaker Studio可视化调优:在Studio里通过可视化界面创建Scikit-Learn调优任务,无需手动编写参数解析逻辑,适合快速验证模型。
  • SageMaker Pipelines流水线集成:如果你的任务需要端到端流水线管理,可以把超参数调优作为Pipeline的一个步骤,统一管控数据预处理、调优、模型部署全流程。

内容的提问来源于stack exchange,提问作者jvmunhoz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:02:50