按照这个-How to use a pretrained model from s3 to predict some data?,我试图使用现有模型来创建端点,但是我遇到了以下错误-

    Traceback (most recent call last):
  File "/miniconda3/lib/python3.7/site-packages/gunicorn/workers/base_async.py", line 55, in handle
    self.handle_request(listener_name, req, client, addr)
  File "/miniconda3/lib/python3.7/site-packages/gunicorn/workers/ggevent.py", line 143, in handle_request
    super().handle_request(listener_name, req, sock, addr)
  File "/miniconda3/lib/python3.7/site-packages/gunicorn/workers/base_async.py", line 106, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/miniconda3/lib/python3.7/site-packages/sagemaker_sklearn_container/serving.py", line 124, in main
    serving_env.module_dir)
  File "/miniconda3/lib/python3.7/site-packages/sagemaker_sklearn_container/serving.py", line 101, in import_module
    user_module = importlib.import_module(module_name)
  File "/miniconda3/lib/python3.7/importlib/__init__.py", line 118, in import_module
    if name.startswith('.'):
按照Problem deploying the best estimator gotten with sagemaker.estimator.Estimator (w/ sklearn custom image)https://forums.aws.amazon.com/thread.jspa?threadID=313838,我使用的是正确的env变量(以及SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT,SAGEMAKER_PROGRAM和SAGEMAKER_SUBMIT_DIRECTORY),但是以某种方式在创建端点时运行状况检查失败。
  • 我通过AWS控制台尝试了类似的操作,并且令人惊讶地工作。

  • 是否可以通过代码解决此问题?
    我的代码段-
    trainedmodel = sagemaker.model.Model(
    model_data='s3://my-bucket/my-key/output/model.tar.gz',
    image='my-image',
    env={"SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
         "SAGEMAKER_USE_NGINX": "True",
         "SAGEMAKER_WORKER_CLASS_TYPE": "gevent",
         "SAGEMAKER_KEEP_ALIVE_SEC": "60",
         "SAGEMAKER_CONTAINER_LOG_LEVEL": "20",
         "SAGEMAKER_ENABLE_CLOUDWATCH_METRICS": "false",
         "SAGEMAKER_PROGRAM": "my-script.py",
         "SAGEMAKER_REGION": "us-east-1",
         "SAGEMAKER_SUBMIT_DIRECTORY": "s3://my-bucket/my-key/source/sourcedir.tar.gz"
        },
    role=role)
    
    trainedmodel.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name = 'my-endpoint')
    

    最佳答案

    根据您的堆栈跟踪,容器似乎找不到您的entry_point模块(my-script.py)。
    默认情况下,容器会在Python路径中添加“/ opt / ml / code”,并且可以导入此目录下的模块。
    您可以通过为SAGEMAKER_BASE_PATH提供值(默认为“/ opt / ml”)并将此脚本修改为其他值,并将脚本放在“ / code”下,容器将导入模块“ / code / SAGEMAKER_PROGRAM”

    10-01 11:11
    查看更多