Amazon SageMaker 디버거 출력 텐서를 시각화하십시오 TensorBoard - 아마존 SageMaker

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

Amazon SageMaker 디버거 출력 텐서를 시각화하십시오 TensorBoard

중요

이 페이지는 SageMaker 교육 및 도메인의 액세스 제어 기능과 통합된 포괄적인 TensorBoard 경험을 제공하는 Amazon SageMaker TensoBoard with에서 더 이상 사용되지 않습니다. SageMaker 자세한 내용은 Amazon에서 교육 작업을 디버깅하고 분석하는 TensorBoard 데 사용합니다. SageMaker 섹션을 참조하세요.

SageMaker 디버거를 사용하여 호환되는 출력 텐서 파일을 생성할 수 있습니다. TensorBoard 파일을 로드하여 훈련 작업을 TensorBoard 시각화하고 분석하세요. SageMaker 디버거는 호환되는 출력 텐서 파일을 자동으로 생성합니다. TensorBoard 출력 텐서를 저장하기 위해 사용자 지정하는 모든 후크 구성의 경우 디버거를 사용하면 가져올 수 있는 스칼라 요약, 분포 및 히스토그램을 유연하게 만들 수 있습니다. TensorBoard

Debugger 출력 텐서 저장 메커니즘의 아키텍처 다이어그램.

estimatorDebuggerHookConfigTensorBoardOutputConfig 객체를 전달하여 이를 활성화할 수 있습니다.

다음 절차는 스칼라, 가중치 및 편향을 시각화할 수 있는 전체 텐서, 히스토그램 및 분포로 저장하는 방법을 설명합니다. TensorBoard Debugger는 이를 훈련 컨테이너의 로컬 경로(기본 경로는 /opt/ml/output/tensors)에 저장하고 Debugger 출력 구성 객체를 통해 전달된 Amazon S3 위치에 동기화합니다.

디버거를 사용하여 호환되는 출력 텐서 파일을 저장하려면 TensorBoard
  1. TensorBoardOutputConfigDebugger 클래스를 사용하여 TensorBoard 출력을 저장하도록 tensorboard_output_config 구성 객체를 설정합니다. s3_output_path파라미터에는 현재 SageMaker 세션의 기본 S3 버킷 또는 선호하는 S3 버킷을 지정합니다. 이 예제에서는 container_local_output_path 파라미터를 추가하지 않고 대신 기본 로컬 경로 /opt/ml/output/tensors로 설정합니다.

    import sagemaker from sagemaker.debugger import TensorBoardOutputConfig bucket = sagemaker.Session().default_bucket() tensorboard_output_config = TensorBoardOutputConfig( s3_output_path='s3://{}'.format(bucket) )

    자세한 내용은 Amazon SageMaker Python SDK의 디버거 TensorBoardOutputConfig API를 참조하십시오.

  2. Debugger 후크를 구성하고 후크 파라미터 값을 사용자 지정합니다. 예를 들어, 다음 코드는 훈련 단계에서는 100단계마다, 검증 단계에서는 10단계마다 모든 스칼라 출력을 저장하고, weights 파라미터는 500단계마다(텐서 컬렉션을 저장하는 기본 save_interval 값은 500), 글로벌 단계가 500에 도달할 때까지 10개의 글로벌 단계마다 bias 파라미터를 저장하도록 Debugger 후크를 구성합니다.

    from sagemaker.debugger import CollectionConfig, DebuggerHookConfig hook_config = DebuggerHookConfig( hook_parameters={ "train.save_interval": "100", "eval.save_interval": "10" }, collection_configs=[ CollectionConfig("weights"), CollectionConfig( name="biases", parameters={ "save_interval": "10", "end_step": "500", "save_histogram": "True" } ), ] )

    디버거 구성 API에 대한 자세한 내용은 Amazon Python SDK의 디버거 CollectionConfigDebuggerHookConfig API를 참조하십시오. SageMaker

  3. 구성 객체를 전달하는 디버거 파라미터를 사용하여 SageMaker 추정기를 구성하십시오. 다음 예제 템플릿은 일반 추정기를 만드는 방법을 보여줍니다. SageMaker 및 를 다른 SageMaker 프레임워크의 추정기 부모 클래스 estimator 및 추정기 Estimator 클래스로 바꿀 수 있습니다. 이 기능에 사용할 수 있는 SageMaker 프레임워크 추정기는,, 입니다. TensorFlow PyTorch MXNet

    from sagemaker.estimator import Estimator estimator = Estimator( ... # Debugger parameters debugger_hook_config=hook_config, tensorboard_output_config=tensorboard_output_config ) estimator.fit()

    estimator.fit()메서드가 훈련 작업을 시작하고 디버거는 출력 텐서 파일을 디버거 S3 출력 경로와 S3 출력 경로에 실시간으로 씁니다. TensorBoard 출력 경로를 검색하려면 아래의 예측기 메서드를 사용하세요.

    • Debugger S3 출력 경로의 경우, estimator.latest_job_debugger_artifacts_path()를 사용하세요.

    • TensorBoard S3 출력 경로의 경우 를 사용하십시오. estimator.latest_job_tensorboard_artifacts_path()

  4. 훈련이 완료되면 저장된 출력 텐서의 이름을 확인합니다.

    from smdebug.trials import create_trial trial = create_trial(estimator.latest_job_debugger_artifacts_path()) trial.tensor_names()
  5. Amazon S3에서 TensorBoard 출력 데이터를 확인합니다.

    tensorboard_output_path=estimator.latest_job_tensorboard_artifacts_path() print(tensorboard_output_path) !aws s3 ls {tensorboard_output_path}/
  6. TensorBoard 출력 데이터를 노트북 인스턴스로 다운로드합니다. 예를 들어, 다음 AWS CLI 명령은 노트북 인스턴스의 현재 작업 디렉토리 /logs/fit 아래에 TensorBoard 파일을 다운로드합니다.

    !aws s3 cp --recursive {tensorboard_output_path} ./logs/fit
  7. 파일 디렉터리를 TAR 파일로 압축하여 로컬 컴퓨터에 다운로드합니다.

    !tar -cf logs.tar logs
  8. Tensorboard TAR 파일을 다운로드하여 디바이스의 디렉터리에 압축을 풀고, Jupyter 노트북 서버를 시작하고, 새 노트북을 열고, 앱을 실행합니다. TensorBoard

    !tar -xf logs.tar %load_ext tensorboard %tensorboard --logdir logs/fit

다음 애니메이션 스크린샷은 5~8단계를 보여주는 스크린샷입니다. 디버거 TensorBoard TAR 파일을 다운로드하고 로컬 기기의 Jupyter 노트북에 파일을 로드하는 방법을 보여줍니다.

로컬 컴퓨터에 디버거 TensorBoard 파일을 다운로드하고 로드하는 방법을 보여주는 애니메이션 스크린샷입니다.