Memulai Neo di Perangkat Edge - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulai Neo di Perangkat Edge

Panduan untuk memulai Amazon SageMaker Neo ini menunjukkan cara mengompilasi model, menyiapkan perangkat, dan membuat kesimpulan di perangkat Anda. Sebagian besar contoh kode menggunakan Boto3. Kami menyediakan perintah menggunakan AWS CLI jika berlaku, serta instruksi tentang cara memenuhi prasyarat untuk Neo.

catatan

Anda dapat menjalankan cuplikan kode berikut di komputer lokal Anda, di dalam SageMaker buku catatan, di dalam SageMaker Studio, atau (tergantung pada perangkat edge Anda) di perangkat edge Anda. Penyiapannya serupa; namun, ada dua pengecualian utama jika Anda menjalankan panduan ini dalam instance SageMaker notebook atau sesi SageMaker Studio:

  • Anda tidak perlu menginstal Boto3.

  • Anda tidak perlu menambahkan kebijakan ‘AmazonSageMakerFullAccess’ IAM

Panduan ini mengasumsikan Anda menjalankan instruksi berikut di perangkat edge Anda.

Prasyarat

  1. Instal Boto3

    Jika Anda menjalankan perintah ini di perangkat edge Anda, Anda harus menginstal AWS SDK for Python (Boto3). Dalam lingkungan Python (sebaiknya lingkungan virtual), jalankan yang berikut ini secara lokal di terminal perangkat edge Anda atau dalam instance notebook Jupyter:

    Terminal
    pip install boto3
    Jupyter Notebook
    !pip install boto3
  2. Mengatur AWS Kredensil

    Anda perlu menyiapkan kredensi Amazon Web Services di perangkat Anda untuk menjalankan SDK for Python (Boto3). Secara default, AWS kredensil harus disimpan dalam file ~/.aws/credentials di perangkat edge Anda. Dalam file kredensial, Anda akan melihat dua variabel lingkungan: aws_access_key_id dan. aws_secret_access_key

    Di terminal Anda, jalankan:

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

    Panduan Referensi AWS Umum memiliki instruksi tentang cara mendapatkan yang diperlukan aws_access_key_id danaws_secret_access_key. Untuk informasi selengkapnya tentang cara mengatur kredensional di perangkat Anda, lihat dokumentasi Boto3.

  3. Siapkan Peran IAM dan lampirkan kebijakan.

    Neo membutuhkan akses ke URI bucket S3 Anda. Buat peran IAM yang dapat dijalankan SageMaker dan memiliki izin untuk mengakses URI S3. Anda dapat membuat peran IAM baik dengan menggunakan SDK for Python (Boto3), konsol, atau. AWS CLI Contoh berikut menggambarkan cara membuat peran IAM menggunakan SDK for Python (Boto3):

    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'

    Untuk informasi selengkapnya tentang cara membuat peran IAM dengan konsol AWS CLI, atau melalui AWS API, lihat Membuat pengguna IAM di akun Anda AWS.

    Buat kamus yang menjelaskan kebijakan IAM yang Anda lampirkan. Kebijakan ini digunakan untuk membuat peran IAM baru.

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

    Buat peran IAM baru menggunakan kebijakan yang Anda tentukan di atas:

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

    Anda perlu tahu apa Nama Sumber Daya Amazon (ARN) Anda saat membuat pekerjaan kompilasi di langkah selanjutnya, jadi simpan juga dalam variabel.

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

    Sekarang setelah Anda membuat peran baru, lampirkan izin yang diperlukan untuk berinteraksi dengan Amazon SageMaker dan 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. Buat bucket Amazon S3 untuk menyimpan artefak model Anda

    SageMaker Neo akan mengakses artefak model Anda dari 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'/
  5. Latih model pembelajaran mesin

    Lihat Melatih Model dengan Amazon SageMaker untuk informasi lebih lanjut tentang cara melatih model pembelajaran mesin menggunakan Amazon SageMaker. Anda dapat mengunggah model yang dilatih secara lokal secara opsional langsung ke bucket Amazon S3 URI.

    catatan

    Pastikan model diformat dengan benar tergantung pada kerangka kerja yang Anda gunakan. Lihat Bentuk data input apa yang diharapkan SageMaker Neo?

    Jika Anda belum memiliki model, gunakan curl perintah untuk mendapatkan salinan lokal coco_ssd_mobilenet model dari situs TensorFlow web. Model yang baru saja Anda salin adalah model deteksi objek yang dilatih dari dataset COCO. Ketik berikut ini ke notebook Jupyter Anda:

    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}

    Perhatikan bahwa contoh khusus ini dikemas dalam file.zip. Buka zip file ini dan kemas ulang sebagai tarfile terkompresi (.tar.gz) sebelum menggunakannya di langkah selanjutnya. Ketik berikut ini ke notebook Jupyter Anda:

    # 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. Unggah model terlatih ke bucket S3

    Setelah Anda melatih mode pembelajaran mesin Anda, simpan dalam ember S3.

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

    Ganti your-model-filename dan your-S3-bucket dengan nama bucket S3 Anda.

    aws s3 cp your-model-filename s3://your-S3-bucket