创建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行:
答案 0 :(得分:0)
仔细检查您是否已设置了必要的环境变量。我没有设置环境变量SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT
,SAGEMAKER_PROGRAM
和SAGEMAKER_SUBMIT_DIRECTORY
时遇到了这个问题。检查工作基础模型以查看需要设置哪些环境变量。