選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

必要條件

焦點模式
必要條件 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SageMaker Neo 是一種功能,可讓您訓練機器學習模型一次,並在雲端和邊緣的任何位置執行。您必須先設定一些先決條件,才能使用 Neo 編譯和最佳化模型。您必須安裝必要的 Python 程式庫、設定登入 AWS 資料、建立具有必要許可的 IAM 角色,以及設定 S3 儲存貯體來存放模型成品。您還必須準備好訓練有素的機器學習模型。下列步驟會引導您完成設定:

  1. 安裝 Boto3

    如果您要在邊緣裝置上執行這些命令,則必須安裝 AWS SDK for Python (Boto3)。在 Python 環境 (最好是虛擬環境) 中,在邊緣裝置的終端或 Jupyter 筆記本執行個體中本機執行以下操作:

    Terminal
    pip install boto3
    Jupyter Notebook
    !pip install boto3
    pip install boto3
  2. 設定 AWS 登入資料

    您必須在裝置上設定 Amazon Web Services 憑證,以執行 SDK for Python (Boto3)。根據預設, AWS 憑證應存放在您節點裝置上的 ~/.aws/credentials檔案中。在憑證檔案中,您應該會看到兩個環境變數:aws_access_key_idaws_secret_access_key

    在您的終端機中執行:

    $ more ~/.aws/credentials [default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEY

    AWS 一般參考指南提供有關如何獲得必要 aws_access_key_idaws_secret_access_key 的指示。如需如何在裝置上設定憑證的詳細資訊,請參閱 Boto3 文件。

  3. 設定 IAM 角色並連接政策。

    Neo 需要存取您的 S3 儲存貯體 URI。建立可執行 SageMaker AI 並具有存取 S3 URI 許可的 IAM 角色。您可以使用適用於 Python 的 SDK (Boto3)、主控台或 AWS CLI來建立 IAM 角色。下列範例使用了 SDK for Python (Boto3) 來說明如何建立 IAM 角色:

    import boto3 AWS_REGION = 'aws-region' # Create an IAM client to interact with IAM iam_client = boto3.client('iam', region_name=AWS_REGION) role_name = 'role-name'

    如需如何使用主控台 AWS CLI或透過 AWS API 建立 IAM 角色的詳細資訊,請參閱在 AWS 帳戶中建立 IAM 使用者

    建立說明您要連接的 IAM 政策之字典。此政策用於建立新的 IAM 角色。

    policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }

    使用您上方定義的政策建立新的 IAM 角色:

    import json new_role = iam_client.create_role( AssumeRolePolicyDocument=json.dumps(policy), Path='/', RoleName=role_name )

    在稍後的步驟中建立編譯任務時,您需要知道您的 Amazon Resource Name (ARN) 是什麼,因此也將其儲存在變數中。

    role_arn = new_role['Role']['Arn']

    現在您已建立新的角色,請連接與 Amazon SageMaker AI 和 Amazon S3 互動所需的許可:

    iam_client.attach_role_policy( RoleName=role_name, PolicyArn='arn:aws:iam::aws:policy/AmazonSageMakerFullAccess' ) iam_client.attach_role_policy( RoleName=role_name, PolicyArn='arn:aws:iam::aws:policy/AmazonS3FullAccess' );
  4. 建立 Amazon S3 儲存貯體以儲存您的模型成品

    SageMaker Neo 將從 Amazon S3 存取您的模型成品

    Boto3
    # Create an S3 client s3_client = boto3.client('s3', region_name=AWS_REGION) # Name buckets bucket='name-of-your-bucket' # Check if bucket exists if boto3.resource('s3').Bucket(bucket) not in boto3.resource('s3').buckets.all(): s3_client.create_bucket( Bucket=bucket, CreateBucketConfiguration={ 'LocationConstraint': AWS_REGION } ) else: print(f'Bucket {bucket} already exists. No action needed.')
    CLI
    aws s3 mb s3://'name-of-your-bucket' --region specify-your-region # Check your bucket exists aws s3 ls s3://'name-of-your-bucket'/
    # Create an S3 client s3_client = boto3.client('s3', region_name=AWS_REGION) # Name buckets bucket='name-of-your-bucket' # Check if bucket exists if boto3.resource('s3').Bucket(bucket) not in boto3.resource('s3').buckets.all(): s3_client.create_bucket( Bucket=bucket, CreateBucketConfiguration={ 'LocationConstraint': AWS_REGION } ) else: print(f'Bucket {bucket} already exists. No action needed.')
  5. 訓練機器學習模型

    如需如何使用 Amazon SageMaker AI 訓練機器學習模型的詳細資訊,請參閱使用 Amazon SageMaker AI 訓練模型。您可以選擇性地將本機訓練的模型直接上傳到 Amazon S3 URI 儲存貯體。

    注意

    取決於您使用的架構,請確保模型格式正確。參閱 SageMaker Neo 應有哪些輸入資料形狀?

    如果您還沒有模型,請使用 curl 命令從 TensorFlow 的網站取得 coco_ssd_mobilenet 模型的本機複本。您剛複製的模型是源自 COCO 資料集訓練的物件偵測模型。在 Jupyter 筆記本中輸入以下內容:

    model_zip_filename = './coco_ssd_mobilenet_v1_1.0.zip' !curl http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip \ --output {model_zip_filename}

    請注意,此特定範例以 .zip 檔案封裝。解壓縮此檔案並將其重新封裝為壓縮的 tarfile (.tar.gz),然後再於稍後的步驟中使用它。在 Jupyter 筆記本中輸入以下內容:

    # Extract model from zip file !unzip -u {model_zip_filename} model_filename = 'detect.tflite' model_name = model_filename.split('.')[0] # Compress model into .tar.gz so SageMaker Neo can use it model_tar = model_name + '.tar.gz' !tar -czf {model_tar} {model_filename}
  6. 將訓練過的模型上傳到 S3 儲存貯體

    訓練完機器學習模式後,請將其儲存在 S3 儲存貯體中。

    Boto3
    # Upload model s3_client.upload_file(Filename=model_filename, Bucket=bucket, Key=model_filename)
    CLI

    your-model-filenameamzn-s3-demo-bucket 取代為您 Amazon S3 儲存貯體的名稱。

    aws s3 cp your-model-filename s3://amzn-s3-demo-bucket
    # Upload model s3_client.upload_file(Filename=model_filename, Bucket=bucket, Key=model_filename)
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。