sagemaker.estimator.Estimator(带有sklearn自定义图像)部署最佳估计器时遇到问题

时间:2019-09-22 15:32:47

标签: scikit-learn amazon-sagemaker

创建SKLearn()实例并使用HyperparamaterTuner和一些超参数范围后,我得到了最佳估计器。当我尝试deploy()估算器时,它在日志中给出了错误。当我创建转换器并对其调用transform()时,会发生完全相同的错误。不部署,也不转换。可能是问题所在,至少我如何才能缩小问题范围?

我什至不知道该如何解决这个问题。谷歌搜索没有帮助。什么都没发生。

创建SKLearn实例:

sklearn = SKLearn(
    entry_point=script_path,
    train_instance_type="ml.c4.xlarge",
    role=role,
    sagemaker_session=session,
    hyperparameters={'model': 'rfc'})

将调谐器投入使用:

tuner = HyperparameterTuner(estimator = sklearn,
                            objective_metric_name = objective_metric_name,
                            objective_type = 'Minimize',
                            metric_definitions = metric_definitions,
                            hyperparameter_ranges = hyperparameters,
                            max_jobs = 3, # 9,
                            max_parallel_jobs = 4)

tuner.fit({'train': s3_input_train})
tuner.wait()
best_training_job = tuner.best_training_job()
the_best_estimator = sagemaker.estimator.Estimator.attach(best_training_job)

这提供了有效的最佳培训工作。一切似乎都很棒。

问题出在这里:

predictor = the_best_estimator.deploy(initial_instance_count=1, instance_type="ml.m4.xlarge")

或以下(触发完全相同的问题):

rfc_transformer = the_best_estimator.transformer(1, instance_type="ml.m4.xlarge")
rfc_transformer.transform(test_location)
rfc_transformer.wait()

这是带有错误消息的日志(它在尝试部署或转换时多次重复同一错误;这是日志的开头):

................ [2019-09-22 09:17:48 +0000] [17] [信息]起始枪杀19.9.0

[2019-09-22 09:17:48 +0000] [17] [INFO]收听:unix:/tmp/gunicorn.sock(17)

[2019-09-22 09:17:48 +0000] [17] [INFO]使用worker:gevent

[2019-09-22 09:17:48 +0000] [24] [INFO]使用pid:24启动工人

[2019-09-22 09:17:48 +0000] [25] [INFO]使用pid:25启动工人

[2019-09-22 09:17:48 +0000] [26] [INFO]使用pid引导工人:26

[2019-09-22 09:17:48 +0000] [30] [INFO]使用pid:30引导工作人员

2019-09-22 09:18:15,061信息-sagemaker容器-未检测到GPU(如果未安装GPU则正常)

2019-09-22 09:18:15,062信息-sagemaker_sklearn_container.serving-遇到意外错误。

[2019-09-22 09:18:15 +0000] [24] [错误]错误处理请求/ ping

回溯(最近通话最近一次):

文件“ /usr/local/lib/python3.5/dist-packages/gunicorn/workers/base_async.py”,行self.handle_request(listener_name,req,client,addr)中的第56行

handle_request地址中的文件“ /usr/local/lib/python3.5/dist-packages/gunicorn/workers/ggevent.py”,第160行)

文件“ /usr/local/lib/python3.5/dist-packages/gunicorn/workers/base_async.py”,在handle_request respiter = self.wsgi(environ,resp.start_response)中的第107行

文件“ /usr/local/lib/python3.5/dist-packages/sagemaker_sklearn_container/serving.py”,第119行,位于主user_module_transformer = import_module(serving_env.module_name,serving_env.module_dir)

文件“ /usr/local/lib/python3.5/dist-packages/sagemaker_sklearn_container/serving.py”,第97行,位于import_module user_module = importlib.import_module(module_name)

如果name.startswith('。')中import_module中的文件“ /usr/lib/python3.5/importlib/init.py”,第117行:

AttributeError:“ NoneType”对象没有属性“ startswith”

169.254.255.130--[22 / Sep / 2019:09:18:15 +0000]“ GET / ping HTTP / 1.1” 500141“-”“ Go-http-client / 1.1”

2019-09-22 09:18:15,178信息-sagemaker容器-未检测到GPU(如果未安装GPU则正常)

2019-09-22 09:18:15,179信息-sagemaker_sklearn_container.serving-遇到意外错误。

[2019-09-22 09:18:15 +0000] [30] [错误]错误处理请求/ ping

回溯(最近通话最近一次):

文件“ /usr/local/lib/python3.5/dist-packages/gunicorn/workers/base_async.py”,行self.handle_request(listener_name,req,client,addr)中的第56行

handle_request地址中的文件“ /usr/local/lib/python3.5/dist-packages/gunicorn/workers/ggevent.py”,第160行)

文件“ /usr/local/lib/python3.5/dist-packages/gunicorn/workers/base_async.py”,在handle_request respiter = self.wsgi(environ,resp.start_response)中的第107行

文件“ /usr/local/lib/python3.5/dist-packages/sagemaker_sklearn_container/serving.py”,第119行,位于主user_module_transformer = import_module(serving_env.module_name,serving_env.module_dir)

文件“ /usr/local/lib/python3.5/dist-packages/sagemaker_sklearn_container/serving.py”,第97行,位于import_module user_module = importlib.import_module(module_name)

如果name.startswith('。')中import_module中的文件“ /usr/lib/python3.5/importlib/init.py”,第117行:

1 个答案:

答案 0 :(得分:0)

仔细检查您是否已设置了必要的环境变量。我没有设置环境变量SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPTSAGEMAKER_PROGRAMSAGEMAKER_SUBMIT_DIRECTORY时遇到了这个问题。检查工作基础模型以查看需要设置哪些环境变量。