首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Scikit Learn创建亚马逊SageMaker超参数调优作业

使用Scikit Learn创建亚马逊SageMaker超参数调优作业
EN

Stack Overflow用户
提问于 2018-07-18 05:42:00
回答 0查看 1.5K关注 0票数 4

我想知道如何使用Amazon Sagemaker自动调整我的scikit学习随机森林模型。现在,我想调优一个名为"max_depth“的超参数。我将首先转储我的代码,然后表达一些担忧。

文件:notebook.ipynb

代码语言:javascript
运行
复制
estimator = sagemaker.estimator.Estimator(image, role,
              train_instance_count=1,
              train_instance_type='ml.m4.xlarge',
              output_path=output_location,
              sagemaker_session=sagemaker_session,
              )

hyperparameter_ranges = {'max_depth': IntegerParameter(20, 30)}
objective_metric_name = 'score'
metric_definitions = [{'Name': 'score', 'Regex': 'score: ([0-9\\.]+)'}]

tuner = HyperparameterTuner(estimator,
                        objective_metric_name,
                        hyperparameter_ranges,
                        metric_definitions,
                        max_jobs=9,
                        max_parallel_jobs=3)
tuner.fit({'train': train_data_location, 'test': test_data_location})

文件:train (位于docker容器中)

代码语言:javascript
运行
复制
def train():
    with open(param_path, 'r') as tc:
        hyperparams = json.load(tc)
    print("DEBUG VALUE: ", hyperparams)
    data, class = get_data() #abstraction
    X, y = train_data.drop(['class'], axis=1), train_data['class']
    clf = RandomForestClassifier()
    clf.fit(data, class)
    print("score: " + str(evaluate_model(clf)) + "\n")

我发现这段代码有两个问题。首先,如果我将一个json对象{'max_value':2}放在名为hyperparameters.json的文件中的必要路径下,则print语句输出{},就好像该文件是空的一样。

问题2是,train()不允许超参数以任何方式、形状或形式影响代码。据我所知,亚马逊没有关于tuner.fit()方法内部工作原理的文档。这意味着我无法弄清楚train()如何访问要测试的超参数。

任何帮助是感谢,让我知道,如果我可以提供更多的代码或澄清任何事情。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51390606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档