쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

모델 컴파일

포커스 모드
모델 컴파일 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사전 조건을 충족하면 Amazon SageMaker AI Neo로 모델을 컴파일할 수 있습니다. AWS CLI, 콘솔 또는 Amazon Web Services SDK for Python(Boto3)을 사용하여 모델을 컴파일할 수 있습니다. 모델 컴파일에 Neo 사용을 참조하세요. 이 예제에서는 Boto3를 사용하여 모델을 컴파일합니다.

모델을 컴파일하려면 SageMaker Neo에는 다음 정보가 필요합니다.

  1. 훈련된 모델을 저장한 Amazon S3 버킷 URI입니다.

    사전 요구 사항을 따랐다면 버킷이 bucket라는 변수에 저장됩니다. 다음 코드 스니펫은 AWS CLI를 사용하여 모든 버킷을 나열하는 방법을 보여줍니다.

    aws s3 ls

    예시:

    $ aws s3 ls 2020-11-02 17:08:50 bucket
  2. 컴파일된 모델을 저장하려는 Amazon S3 버킷 URI입니다.

    아래 코드 스니펫은 Amazon S3 버킷 URI를 output라는 출력 디렉터리의 이름과 연결합니다.

    s3_output_location = f's3://{bucket}/output'
  3. 모델 훈련에 사용한 기계 훈련 프레임워크.

    모델 훈련에 사용한 프레임워크를 정의하세요.

    framework = 'framework-name'

    예를 들어 TensorFlow를 사용하여 훈련된 모델을 컴파일하는데 tflite 또는 tensorflow를 사용할 수 있습니다. 스토리지 메모리를 적게 사용하는 더 가벼운 버전의 TensorFlow를 사용하려는 경우 tflite를 사용하세요.

    framework = 'tflite'

    NEO 지원 프레임워크의 전체 목록은 지원되는 프레임워크, 디바이스, 시스템, 아키텍처를 참조하세요.

  4. 모델 입력의 셰이프.

    Neo에는 입력 텐서의 이름과 모양이 필요합니다. 이름과 모양은 키-값 페어로 전달됩니다. value는 입력 텐서의 정수 크기 목록이며 key는 모델에 있는 입력 텐서의 정확한 이름입니다.

    data_shape = '{"name": [tensor-shape]}'

    예시:

    data_shape = '{"normalized_input_image_tensor":[1, 300, 300, 3]}'
    참고

    사용한 프레임워크에 따라 모델 형식이 올바른지 확인하세요. SageMaker Neo에 필요한 입력 데이터 셰이프는 무엇입니까?를 참조하세요. 이 사전의 키를 새 입력 텐서 이름으로 변경해야 합니다.

  5. 컴파일할 대상 디바이스의 이름 또는 하드웨어 플랫폼의 일반 세부 정보

    target_device = 'target-device-name'

    예를 들어, Raspberry Pi 3에 배포하려면 다음을 사용하세요.

    target_device = 'rasp3b'

    지원되는 엣지 디바이스의 전체 목록은 지원되는 프레임워크, 디바이스, 시스템, 아키텍처에서 찾을 수 있습니다.

이전 단계를 완료했으니 이제 Neo에 컴파일 작업을 제출할 수 있습니다.

# Create a SageMaker client so you can submit a compilation job sagemaker_client = boto3.client('sagemaker', region_name=AWS_REGION) # Give your compilation job a name compilation_job_name = 'getting-started-demo' print(f'Compilation job for {compilation_job_name} started') response = sagemaker_client.create_compilation_job( CompilationJobName=compilation_job_name, RoleArn=role_arn, InputConfig={ 'S3Uri': s3_input_location, 'DataInputConfig': data_shape, 'Framework': framework.upper() }, OutputConfig={ 'S3OutputLocation': s3_output_location, 'TargetDevice': target_device }, StoppingCondition={ 'MaxRuntimeInSeconds': 900 } ) # Optional - Poll every 30 sec to check completion status import time while True: response = sagemaker_client.describe_compilation_job(CompilationJobName=compilation_job_name) if response['CompilationJobStatus'] == 'COMPLETED': break elif response['CompilationJobStatus'] == 'FAILED': raise RuntimeError('Compilation failed') print('Compiling ...') time.sleep(30) print('Done!')

디버깅에 대한 추가 정보가 필요하면 다음 인쇄 문장을 포함하세요.

print(response)

컴파일 작업이 성공하면 컴파일된 모델은 이전에 지정한 출력 Amazon S3 버킷(s3_output_location)에 저장됩니다. 컴파일된 모델을 로컬로 다운로드하세요.

object_path = f'output/{model}-{target_device}.tar.gz' neo_compiled_model = f'compiled-{model}.tar.gz' s3_client.download_file(bucket, object_path, neo_compiled_model)
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.