기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
여러 프로필 추적 파일의 타임라인 병합
SMDebug 클라이언트 라이브러리는 디버거에서 수집한 시스템 지표, 프레임워크 지표 및 Python 프로파일링 데이터의 타임라인을 병합하기 위한 프로파일링 분석 및 시각화 도구를 제공합니다.
작은 정보
계속하기 전에 이 페이지의 예제 전체에서 사용할 TrainingJob 객체를 설정해야 합니다. TrainingJob 객체 설정에 대한 자세한 내용은 을 참조하십시오. 프로필 데이터에 액세스
이 MergedTimeline
클래스는 다양한 프로파일링 정보를 단일 타임라인으로 통합하고 상호 연관시키는 도구를 제공합니다. 디버거가 훈련 작업의 여러 단계에서 프로파일링 데이터와 주석을 캡처한 후 추적 이벤트의 JSON 파일이 기본 tracefolder
디렉터리에 저장됩니다.
-
Python 레이어에 있는 주석의 경우 추적 파일이
*pythontimeline.json
에 저장됩니다. -
TensorFlow C++ 레이어에 있는 주석의 경우 추적 파일이 에 저장됩니다.
*model_timeline.json
-
Tensorflow 프로파일러는 이벤트를
*trace.json.gz
파일에 저장합니다.
작은 정보
모든 JSON 추적 파일을 나열하려면 다음 AWS CLI 명령어를 사용하세요.
! aws s3 ls {tj.profiler_s3_output_path} --recursive | grep '\.json$'
다음 애니메이션 스크린샷에서 볼 수 있듯이 다양한 프로파일링 소스에서 캡처한 추적 이벤트를 단일 플롯에 배치하고 정렬하면 훈련 작업의 여러 단계에서 발생하는 전체 이벤트를 개괄적으로 파악할 수 있습니다.
작은 정보
키보드를 사용하여 추적 앱에서 병합된 타임라인을 조작하려면 확대는 W
키, 왼쪽으로 이동은 A
키, 축소는 S
키, 오른쪽 이동은 D
키를 사용합니다.
smdebug.profiler.analysis.utils.merge_timelines
모듈에서 다음 MergedTimeline
API 작업 및 클래스 메서드를 사용하여 여러 이벤트 추적 JSON 파일을 하나의 추적 이벤트 JSON 파일로 병합할 수 있습니다.
from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline combined_timeline = MergedTimeline(path, file_suffix_filter, output_directory) combined_timeline.merge_timeline(start, end, unit)
MergedTimeline
API 작업은 다음 파라미터를 전달합니다.
-
path
(str) - 시스템 및 프레임워크 프로파일링 추적 파일을 포함하는 루트 폴더(/profiler-output
)를 지정합니다. SageMaker추정기 클래스 메서드 또는 객체를profiler-output
사용하여 찾을 수 있습니다. TrainingJob 예:estimator.latest_job_profiler_artifacts_path()
또는tj.profiler_s3_output_path
. -
file_suffix_filter
(list) - 타임라인을 병합할 파일 접미사 필터 목록을 지정합니다. 사용 가능한 접미사 필터는["model_timeline.json", "pythontimeline.json", "trace.json.gz"].
입니다. 이 파라미터를 수동으로 지정하지 않으면 기본적으로 모든 추적 파일이 병합됩니다. -
output_directory
(str) - 병합된 타임라인 JSON 파일을 저장할 경로를 지정합니다. 기본값은path
파라미터에 지정된 디렉터리입니다.
merge_timeline()
클래스 메서드는 다음 파라미터를 전달하여 병합 프로세스를 실행합니다.
-
start
(int) - 타임라인을 병합할 시작 시간(마이크로초 및 Unix 시간 형식) 또는 시작 단계를 지정합니다. -
end
(int) - 타임라인을 병합할 종료 시간(마이크로초 및 Unix 시간 형식) 또는 종료 단계를 지정합니다. -
unit
(str) -"step"
dhk"time"
중에서 선택합니다. 기본값은"time"
입니다.
다음 예제 코드를 사용하여 merge_timeline()
메서드를 실행하고 병합된 JSON 파일을 다운로드합니다.
-
타임라인을
"time"
단위 옵션과 병합합니다. 다음 예제 코드는 Unix 시작 시간(절대 0 Unix 시간)과 현재 Unix 시간 사이에 사용 가능한 모든 추적 파일을 병합합니다. 즉, 전체 훈련 기간 동안 타임라인을 병합할 수 있습니다.import time from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline from smdebug.profiler.profiler_constants import CONVERT_TO_MICROSECS combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./") combined_timeline.merge_timeline(
0
, int(time.time() * CONVERT_TO_MICROSECS
)) -
타임라인을
"step"
단위 옵션과 병합합니다. 다음 예제 코드는 3단계와 9단계 사이에 사용 가능한 모든 타임라인을 병합합니다.from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./") combined_timeline.merge_timeline(
3
,9
, unit="step
")
chrome://tracing
에 Chrome 브라우저에서 Chrome 추적 앱을 열고 JSON 파일을 엽니다. 출력을 탐색하여 병합된 타임라인을 도식화할 수 있습니다.