LeRobot documentation

데이터셋

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

데이터셋

LeRobotDataset은 모든 LeRobot 스크립트가 읽고 쓰는 형식입니다. 에피소드를 인식하고, 비디오 관측을 온더플라이로 디코딩하며, Hugging Face Hub와 왕복합니다.

포맷과 일반적인 작업은 LeRobotDataset 사용, 마이그레이션은 대형 데이터셋 이식, CLI는 도구를 참고하세요.

LeRobotDataset

class lerobot.datasets.LeRobotDataset

< >

( repo_id: strroot: str | pathlib.Path | None = Noneepisodes: list[int] | None = Noneepisode_filter: collections.abc.Callable[[dict], bool] | None = Noneimage_transforms: collections.abc.Callable | None = Nonedelta_timestamps: dict[str, list[float]] | None = Nonetolerance_s: float = 0.0001revision: str | None = Noneforce_cache_sync: bool = Falsedownload_videos: bool = Truevideo_backend: str | None = Nonereturn_uint8: bool = Falsedepth_output_unit: str = 'mm'batch_encoding_size: int = 1rgb_encoder: lerobot.configs.video.RGBEncoderConfig | None = Nonedepth_encoder: lerobot.configs.video.DepthEncoderConfig | None = Noneencoder_threads: int | None = Nonestreaming_encoding: bool = Falseencoder_queue_maxsize: int = 30repo_type: str = 'dataset'token: str | bool | None = Nonevideo_decoder_cache_size: int | None = None )

add_frame

< >

( frame: dict )

매개변수

  • frame — 이 프레임의 특징 이름과 해당 값을 매핑하는 Dict입니다. 'task' 키를 포함해야 합니다. Torch 텐서는 numpy로 변환됩니다.

다음 예외를 발생시킵니다

RuntimeError

  • RuntimeError — 데이터셋이 읽기 전용(라이터 없음)인 경우.

현재 에피소드 버퍼에 단일 프레임을 추가합니다.

DatasetWriter.add_frame에 위임합니다. 데이터셋은 쓰기 모드여야 합니다(create 또는 resume를 통해 생성).

clear_episode_buffer

< >

( delete_images: bool = True )

매개변수

  • delete_images — True인 경우, 현재 에피소드를 위해 디스크에 기록된 임시 이미지 파일도 삭제합니다.

다음 예외를 발생시킵니다

RuntimeError

  • RuntimeError — 데이터셋이 읽기 전용(라이터 없음)인 경우.

저장하지 않고 현재 에피소드 버퍼를 폐기합니다.

DatasetWriter.clear_episode_buffer에 위임합니다. 실패하거나 중단된 녹화 에피소드를 폐기하는 데 유용합니다.

clear_image_transforms

< >

( )

시각 관측에 적용된 변환을 제거합니다.

create

< >

( repo_id: strfps: intfeatures: dictroot: str | pathlib.Path | None = Nonerobot_type: str | None = Noneuse_videos: bool = Truetolerance_s: float = 0.0001image_writer_processes: int = 0image_writer_threads: int = 0video_backend: str | None = Nonebatch_encoding_size: int = 1rgb_encoder: lerobot.configs.video.RGBEncoderConfig | None = Nonedepth_encoder: lerobot.configs.video.DepthEncoderConfig | None = Nonemetadata_buffer_size: int = 10streaming_encoding: bool = Falseencoder_queue_maxsize: int = 30encoder_threads: int | None = Nonevideo_files_size_in_mb: int | None = Nonedata_files_size_in_mb: int | None = None )

매개변수

  • repo_id — 저장소 식별자, 일반적으로 '{hf_user}/{dataset_name}' 형식입니다.
  • fps — 데이터 수집 시 사용된 초당 프레임 수.
  • features — 기능 이름과 해당 유형/형상 메타데이터를 매핑하는 기능 사양 딕셔너리.
  • root — 데이터셋 저장을 위한 로컬 디렉터리. 기본값은 $HF_LEROBOT_HOME/{repo_id}입니다.
  • robot_type — 메타데이터에 저장되는 선택적 로봇 유형 문자열입니다.
  • use_videos — True인 경우, 시각 모달리티는 MP4 비디오로 저장됩니다. False인 경우, 이미지로 저장됩니다.
  • tolerance_s — 초 단위의 타임스탬프 동기화 허용 오차.
  • image_writer_processes — 비동기 이미지 작성에 사용할 서브프로세스 수. 0은 스레드만 사용함을 의미합니다.
  • image_writer_threads — 비동기 이미지 작성에 사용할 스레드 수.
  • video_backend — 비디오 디코딩 백엔드(읽기 시 사용).
  • batch_encoding_size — 비디오를 배치 인코딩하기 전에 누적할 에피소드 수. 1은 즉시 인코딩함을 의미합니다.
  • rgb_encoder — 카메라용 비디오 인코더 설정(코덱, 품질 등). None인 경우 rgb_encoder_defaults()가 사용됩니다.
  • depth_encoder — 깊이 카메라를 위한 비디오 인코더 설정(코덱, 품질 등). None인 경우 depth_encoder_defaults()가 사용됩니다.
  • encoder_threads — 인코더 스레드 수(전역). None 인코더가 결정합니다.
  • metadata_buffer_size — parquet로 flush하기 전에 버퍼링할 에피소드 메타데이터 레코드 수
  • streaming_encoding — True인 경우, 이미지를 먼저 작성하는 대신 캡처 중에 비디오 프레임을 실시간으로 인코딩합니다.
  • encoder_queue_maxsize — 스트리밍 인코딩을 사용할 때 카메라당 최대 버퍼링 프레임 수

데이터 기록을 위해 새 LeRobotDataset을 처음부터 생성합니다.

활성 DatasetWriter가 포함된 쓰기 모드 데이터셋을 반환합니다. add_frame / save_episode를 사용하여 데이터를 채운 후, 완료 시 finalize를 호출합니다.

finalize

< >

( )

보류 중인 모든 작업을 처리하고 작성자를 닫습니다.

데이터 수집/변환 이후에 호출해야 합니다. 그렇지 않으면 footer 메타데이터가 parquet 파일에 기록되지 않아 데이터셋이 유효하지 않게 됩니다.

멱등성 — 여러 번 호출해도 안전합니다. 이 메서드가 명시적으로 호출되지 않는 경우 DatasetWriter.del이 안전장치 역할을 합니다.

get_raw_item

< >

( idx )

이미지 변환이 적용되지 않은 원시 프레임을 가져옵니다.

__getitem__와 달리, 이 메서드는 주어진 인덱스의 원본 HF dataset 행을 반환하며, delta-timestamp 확장, 비디오 디코딩, 이미지 변환을 수행하지 않습니다.

has_pending_frames

< >

( )

에피소드 버퍼에 저장되지 않은 프레임이 있는지 확인합니다.

push_to_hub

< >

( branch: str | None = Nonetags: list | None = Nonelicense: str | None = 'apache-2.0'tag_version: bool = Truepush_videos: bool = Trueprivate: bool | None = Noneallow_patterns: list[str] | str | None = Noneupload_large_folder: bool = False**card_kwargs )

매개변수

  • branch — 선택적으로 push할 branch입니다. 존재하지 않으면 현재 revision에서 생성됩니다.
  • tags — 데이터셋 카드에 사용할 태그의 선택적 목록입니다.
  • license — 데이터셋 카드의 라이선스 식별자.
  • tag_version — True인 경우, 현재 코드베이스 버전의 Git 태그를 생성합니다.
  • push_videos — False인 경우 videos/ 디렉터리 업로드를 건너뜁니다.
  • private — True인 경우, 비공개 저장소를 생성합니다. None(기본값)인 경우, Hub의 조직 기본 설정을 따릅니다(조직에만 적용).
  • allow_patterns — 업로드할 파일을 제한하는 Glob 패턴입니다.
  • upload_large_folder — 하위 호환성을 위해 유지되며 무시됩니다. upload_folder은 모든 크기의 데이터를 처리합니다.
  • **card_kwargs — 데이터셋 카드 생성에 전달되는 추가 키워드 인자.

데이터셋을 Hugging Face Hub에 업로드합니다.

리포지토리가 존재하지 않으면 생성하고, 모든 데이터셋 파일을 업로드하며(선택적으로 비디오 제외), 데이터셋 카드를 생성하고, 현재 코드베이스 버전으로 리비전을 태그합니다.

재개

< >

( repo_id: strroot: str | pathlib.Path | None = Nonetolerance_s: float = 0.0001revision: str | None = Noneforce_cache_sync: bool = Falsevideo_backend: str | None = Nonebatch_encoding_size: int = 1rgb_encoder: lerobot.configs.video.RGBEncoderConfig | None = Nonedepth_encoder: lerobot.configs.video.DepthEncoderConfig | None = Noneencoder_threads: int | None = Noneimage_writer_processes: int = 0image_writer_threads: int = 0streaming_encoding: bool = Falseencoder_queue_maxsize: int = 30token: str | bool | None = None )

매개변수

  • repo_id — 기존 데이터셋의 저장소 식별자.
  • root — 데이터셋의 로컬 디렉터리입니다. 이 값이 제공되면 Hub에서 다운로드한 데이터가 해당 디렉터리에 직접 저장됩니다. 생략하면 Hub 다운로드는 $HF_LEROBOT_HOME/hub 아래에 리비전 안전한 스냅샷 캐시를 사용합니다.
  • tolerance_s — 초 단위의 타임스탬프 동기화 허용 오차.
  • revision — Git 리비전(브랜치, 태그 또는 커밋 해시). 기본값은 현재 코드베이스 버전 태그입니다.
  • force_cache_sync — True인 경우, 로컬 캐시가 존재하더라도 Hub에서 메타데이터를 다시 다운로드합니다.
  • video_backend — 데이터를 다시 읽기 위한 비디오 디코딩 백엔드.
  • batch_encoding_size — 비디오를 배치 인코딩하기 전에 누적할 에피소드 수.
  • rgb_encoder — 카메라용 비디오 인코더 설정(코덱, 품질 등). None인 경우 rgb_encoder_defaults()가 사용됩니다.
  • depth_encoder — 깊이 카메라를 위한 비디오 인코더 설정(코덱, 품질 등). None인 경우 depth_encoder_defaults()가 사용됩니다.
  • encoder_threads — 인코더 스레드 수(전역). None 인코더가 결정합니다.
  • image_writer_processes — 비동기 이미지 작성을 위한 서브프로세스.
  • image_writer_threads — 비동기 이미지 작성에 사용되는 스레드 수.
  • streaming_encoding — True인 경우, 캡처 중에 실시간으로 비디오를 인코딩합니다.
  • encoder_queue_maxsize — 스트리밍 시 카메라당 최대 버퍼링 프레임 수.
  • token — Hub에서 메타데이터를 다운로드해야 할 경우 사용되는 인증 토큰입니다. 이 토큰은 데이터셋 인스턴스에 저장되지 않습니다.

기존 데이터셋에서 녹음을 재개합니다.

기존 데이터셋(로컬 또는 Hub)에서 메타데이터를 로드하고, 새로운 에피소드를 추가하기 위한 DatasetWriter를 생성합니다. finalize가 호출되고 데이터가 읽힐 때까지 기본 HF 데이터셋은 로드되지 않습니다.

save_episode

< >

( episode_data: dict | None = Noneparallel_encoding: bool = True )

매개변수

  • episode_data — 선택 사항. 미리 생성된 episode dict입니다. None인 경우, add_frame에 의해 채워진 내부 episode 버퍼를 사용합니다.
  • parallel_encoding — True이고 여러 카메라가 존재하는 경우, 프로세스 풀을 사용하여 비디오를 병렬로 인코딩합니다.

다음 예외를 발생시킵니다

RuntimeError

  • RuntimeError — 데이터셋이 읽기 전용(라이터 없음)인 경우.

현재 에피소드 버퍼를 디스크에 저장합니다.

DatasetWriter.save_episode에 위임합니다. 비디오를 인코딩하고 parquet 데이터를 작성하며 메타데이터를 업데이트합니다. 이후 에피소드 버퍼가 초기화됩니다.

select_columns

< >

( column_names: str | list[str] )

기저 데이터셋에서 특정 열을 선택합니다.

모든 기능을 로드하지 않고 리플레이 중에 동작 시퀀스를 추출하는 데 유용합니다. 요청한 컬럼만 포함된 datasets.Dataset을 반환합니다.

set_image_transforms

< >

( image_transforms: collections.abc.Callable | None )

시각 관측에 적용되는 변환을 대체합니다.

LeRobotDatasetMetadata

class lerobot.datasets.LeRobotDatasetMetadata

< >

( repo_id: strroot: str | pathlib.Path | None = Nonerevision: str | None = Noneforce_cache_sync: bool = Falsemetadata_buffer_size: int = 10repo_type: typing.Literal['dataset', 'bucket'] = 'dataset'token: str | bool | None = None )

LeRobot 데이터셋의 메타데이터 컨테이너입니다.

데이터셋의 구조, 내용 및 통계를 설명하는 info.json, stats.json, tasks.parquet, episodes/ parquet 파일들을 관리합니다.

create

< >

( repo_id: strfps: intfeatures: dictrobot_type: str | None = Noneroot: str | pathlib.Path | None = Noneuse_videos: bool = Truemetadata_buffer_size: int = 10chunks_size: int | None = Nonedata_files_size_in_mb: int | None = Nonevideo_files_size_in_mb: int | None = None )

매개변수

  • repo_id — 저장소 식별자(예: 'user/my_dataset').
  • fps — 데이터 수집 시 사용된 초당 프레임 수.
  • features — 기능 이름과 해당 유형/형상 메타데이터를 매핑하는 기능 사양 딕셔너리.
  • robot_type — 메타데이터에 저장되는 선택적 로봇 유형 문자열입니다.
  • root — 데이터셋을 위한 로컬 디렉터리. 기본값은 $HF_LEROBOT_HOME/{repo_id}입니다. 이미 존재해서는 안 됩니다.
  • use_videos — True인 경우, 시각 모달리티는 MP4 비디오로 인코딩됩니다.
  • metadata_buffer_size — parquet로 flush하기 전에 버퍼링할 에피소드 메타데이터 레코드 수
  • chunks_size — chunk 디렉터리당 최대 파일 수. None을 사용하면 기본값이 사용됩니다.
  • data_files_size_in_mb — MB 단위의 최대 parquet 파일 크기. None을 사용하면 기본값이 사용됩니다.
  • video_files_size_in_mb — MB 단위의 최대 비디오 파일 크기. None을 사용하면 기본값이 사용됩니다.

새로운 LeRobot 데이터셋에 대한 메타데이터를 처음부터 생성합니다.

제공된 기능 스키마 및 데이터셋 설정으로 디스크에 info.json 파일을 초기화합니다. 아직 에피소드 데이터는 기록되지 않습니다.

ensure_readable

< >

( )

읽기 작업에 대해 메타데이터가 완전히 로드되었는지 보장합니다.

멱등성 — 메타데이터가 이미 메모리에 있는 경우 이는 is None 검사 하나만 수행합니다. 같은 인스턴스에서 쓰기 모드에서 읽기 모드로 전환하기 전에 이 메서드를 호출하세요.

filter_episodes

< >

( predicate: Callablecandidates: list[int] | None = None )

매개변수

  • predicate — 에피소드를 선택하는 데 사용되는 에피소드별 메타데이터 행에 대한 조건문.
  • candidates — 평가 범위를 제한할 에피소드 인덱스의 선택적 목록입니다.

metadata가 주어진 조건을 만족하는 에피소드를 필터링합니다.

finalize

< >

( )

메타데이터 버퍼를 플러시하고 parquet 작성기를 닫습니다.

멱등성 — 여러 번 호출해도 안전합니다.

get_chunk_settings

< >

( )

현재 청크 및 파일 크기 설정을 가져옵니다.

get_data_file_path

< >

( ep_index: int )

매개변수

  • ep_index — 0부터 시작하는 에피소드 인덱스.

다음 예외를 발생시킵니다

IndexError

  • IndexError — ep_index이 범위를 벗어난 경우.

…

get_task_index

< >

( task: str )

자연어 기반 작업이 주어지면, 해당 작업이 이미 데이터셋에 존재하는 경우 task_index를 반환하고, 그렇지 않으면 None을 반환합니다.

get_video_file_path

< >

( ep_index: intvid_key: str )

매개변수

  • ep_index — 0부터 시작하는 에피소드 인덱스.
  • vid_key — 비디오 스트림을 식별하는 기능 키 (예: 'observation.images.laptop').

다음 예외를 발생시킵니다

IndexError 또는 ValueError

  • IndexError — ep_index이 범위를 벗어난 경우.
  • ValueError — 데이터셋에 영상이 저장되어 있지 않은 경우(video_path 템플릿이 없는 경우).

…

rescale_depth_stats

< >

( output_unit: str )

기록된 단위에서 output_unit으로 깊이 특징 통계를 제자리에서 다시 스케일링합니다.

Depth stats는 프레임이 기록된 단위(features[key]["info"]["depth_unit"])로 저장되며, 읽기 시 프레임은 output_unit로 반환됩니다. 이는 단위 포함 stat 항목을 변환하여 stats가 소비자가 보는 프레임과 일치하도록 합니다.

save_episode

< >

( episode_index: intepisode_length: intepisode_tasks: listepisode_stats: dictepisode_metadata: dict )

매개변수

  • episode_index — 저장 중인 에피소드의 0부터 시작하는 인덱스입니다.
  • episode_length — 이 에피소드의 프레임 수.
  • episode_tasks — 이 에피소드의 작업 설명 목록.
  • episode_stats — 해당 에피소드의 기능별 통계입니다.
  • episode_metadata — 추가 메타데이터(청크/파일 인덱스, 프레임 범위, 비디오 타임스탬프 등).

에피소드 메타데이터를 영구 저장하고, 데이터셋 정보를 업데이트하며, 통계를 집계합니다.

에피소드의 메타데이터를 버퍼링된 parquet writer에 기록하고, info.json의 총 에피소드/프레임 카운터를 증가시키며, 에피소드의 통계를 현재 데이터셋 통계에 병합합니다.

save_episode_tasks

< >

( tasks: list )

매개변수

  • tasks — 자연어의 고유한 작업 설명 목록.

다음 예외를 발생시킵니다

ValueError

  • ValueError — tasks에 중복 항목이 포함된 경우.

현재 에피소드의 작업을 등록하고 디스크에 영구 저장합니다.

데이터셋에 이미 존재하지 않는 새로운 작업에는 순차적인 작업 인덱스가 할당되고, tasks parquet 파일에 추가됩니다.

update_chunk_settings

< >

( chunks_size: int | None = Nonedata_files_size_in_mb: int | None = Nonevideo_files_size_in_mb: int | None = None )

매개변수

  • chunks_size — chunk 디렉터리당 최대 파일 수. None인 경우 현재 값을 유지합니다.
  • data_files_size_in_mb — MB 단위로 데이터 parquet 파일의 최대 크기입니다. None인 경우 현재 값을 유지합니다.
  • video_files_size_in_mb — MB 단위의 비디오 파일 최대 크기. None인 경우 현재 값을 유지합니다.

데이터셋 생성 후 chunk 및 파일 크기 설정을 업데이트합니다.

이를 통해 사용자는 생성자를 수정하지 않고도 저장 구성을 사용자 지정할 수 있습니다. 이러한 설정은 에피소드가 어떻게 청크로 나뉘는지, 그리고 새 파일이 생성되기 전에 파일이 얼마나 커질 수 있는지를 제어합니다.

update_video_info

< >

( video_key: str | None = Nonevideo_encoder: lerobot.configs.video.VideoEncoderConfig | None = Nonepreserve_keys: collections.abc.Iterable[str] | None = None )

매개변수

  • video_key — 지정된 경우, 해당 video key만 업데이트합니다. 그렇지 않으면 데이터셋의 모든 video key를 업데이트합니다.
  • video_encoder — 비디오를 생성하는 데 사용되는 인코더 구성입니다. 제공되면, 해당 필드가 스트림에서 파생된 video.* 항목과 함께 video.<field> 항목으로 기록됩니다(자세한 내용은 get_video_info 참조).
  • preserve_keys — 기존 값이 재계산되지 않고 유지되는 키. 기본값 None은 모든 키를 재계산합니다.

info.json의 기능별 비디오 정보를 채우거나 새로 고칩니다.

Warning: 이 함수는 첫 번째 에피소드 비디오에서 정보를 기록하며, 모든 비디오가 동일한 방식으로 인코딩되었다는 것을 암묵적으로 가정합니다. 또한, 이는 첫 번째 에피소드가 존재한다고 가정합니다.

preserve_keys에 나열된 키의 기존 값은 재계산되지 않고 유지됩니다(예: is_depth_map 및 깊이 양자화 매개변수와 같은 데이터 고유 항목). 이 목록에 없는 모든 재계산 키에 대해서는 비디오를 항상 다시 탐색하고 기존 정보를 덮어씁니다.

MultiLeRobotDataset

class lerobot.datasets.MultiLeRobotDataset

< >

( repo_ids: listroot: str | pathlib.Path | None = Noneepisodes: dict | None = Noneimage_transforms: collections.abc.Callable | None = Nonedelta_timestamps: dict[str, list[float]] | None = Nonetolerances_s: dict | None = Nonedownload_videos: bool = Truevideo_backend: str | None = Nonetoken: str | bool | None = None )

여러 LeRobotDataset로 구성된 데이터셋.

기저 LeRobotDataset들이 사실상 연결(concatenated)되며, 이 클래스는 LeRobotDataset의 API 구조를 상당 부분 채택합니다.

clear_image_transforms

< >

( )

이 데이터셋과 하위 데이터셋에서 transform을 제거합니다.

set_image_transforms

< >

( image_transforms: collections.abc.Callable | None )

이 데이터셋 및 하위 데이터셋의 transform을 대체합니다.

StreamingLeRobotDataset

class lerobot.datasets.StreamingLeRobotDataset

< >

( repo_id: strroot: str | pathlib.Path | None = Noneepisodes: list[int] | None = Noneimage_transforms: collections.abc.Callable[[torch.Tensor], torch.Tensor] | None = Nonedelta_timestamps: dict[str, list[float]] | None = Nonetolerance_s: float = 0.0001revision: str | None = Noneforce_cache_sync: bool = Falsestreaming: bool | None = Nonebuffer_size: int = 1000max_num_shards: int = 16seed: int = 42rng: numpy.random._generator.Generator | None = Noneshuffle: bool = Truereturn_uint8: bool = Falsedepth_output_unit: str = 'mm'video_backend: str | None = Nonedata_root: str | pathlib.Path | None = Noneepisode_pool_size: int | None = Noneprefetch_episodes: int = 8byte_budget_gb: float = 8.0repeat: bool = Falserepo_type: typing.Literal['dataset', 'bucket'] = 'dataset'token: str | bool | None = Nonedecode_threads: int = 2decoded_queue_size: int = 8video_decoder_cache_size: int | None = Nonenative_http_connections: int | None = Nonenative_http_subranges: int = 1sidecar_lock_timeout_s: float = 1800sampling_strategy: lerobot.streaming.episode_pool.StreamingSamplingStrategy | str = <StreamingSamplingStrategy.REMAINING: 'remaining'> )

LeRobot 데이터셋을 위한 에피소드 스코프 스트리밍 리더

메타데이터는 로컬에 캐시되며, 각 랭크는 자신이 소유한 에피소드를 완료하는 데 필요한 Parquet 행과 MP4 바이트 범위만 읽습니다. N개의 DataLoader 워커가 있을 경우, 각 워커는 해당 랭크의 에피소드 중 프레임이 균형 잡힌 서로 다른 부분을 소유하며, 자체 에피소드 풀과 바이트 예산의 1/N을 가집니다. 각 프로세스는 자체 Python GIL을 가지므로 N개의 워커가 샘플을 병렬로 디코딩하고 조립합니다. 에피소드 소유권은 서로 다르며, 선택된 모든 프레임은 반복마다 정확히 한 번만 반환됩니다. MP4 사이드카는 자동으로 해결되며, 존재하지 않으면 리비전 키 기반 로컬 캐시에 생성됩니다.

예:

기본 사용법:

from lerobot.datasets.streaming_dataset import StreamingLeRobotDataset

# Create a streaming dataset with delta timestamps
delta_timestamps = {
    "observation.image": [-1.0, -0.5, 0.0],  # 1 sec ago, 0.5 sec ago, current
    "action": [0.0, 0.1, 0.2],  # current, 0.1 sec future, 0.2 sec future
}

dataset = StreamingLeRobotDataset(
    repo_id="your-dataset-repo-id",
    delta_timestamps=delta_timestamps,
)

# Iterate over the dataset
for i, item in enumerate(dataset):
    print(f"Sample {i}: Episode {item['episode_index']} Frame {item['frame_index']}")
    # item will contain stacked frames according to delta_timestamps
    if i >= 10:
        break

load_state_dict

< >

( state: dict )

매개변수

  • state (dict[str, int]) — Rank-local epoch, sample offset, batch size. 누락된 키는 기본값으로 0, 0, 1이 사용됩니다.

다음 예외를 발생시킵니다

ValueError

  • ValueError — epoch 또는 offset이 음수이거나, batch size가 양수가 아닌 경우.

…

Note: 앵커 순서를 재현하려면 동일한 데이터셋, 시드, 샘플러, 풀 설정, 분산 토폴로지 및 DataLoader 워커 수가 필요합니다. 여러 워커를 사용하는 경우 오프셋은 batch_size 단위 전체 배치 기준의 랭크 오프셋입니다. DataLoader가 워커에서 순차적으로 배치를 가져오기 때문에 각 워커는 자신의 부분을 독립적으로 유도합니다. 이 메서드로는 랜덤 이미지 변환을 복원할 수 없습니다.

num_episodes_for_rank

< >

( rank: intworld_size: int )

…

num_frames_for_rank

< >

( rank: intworld_size: intnum_workers: int )

균형 잡힌 에피소드 전체 샤딩에서 하나의 학습 랭크가 소유한 프레임을 반환합니다.

set_data_parallel_shard

< >

( rank: intworld_size: int )

torch.distributed 및 환경보다 앞서 데이터 병렬 랭크와 월드 사이즈를 고정합니다.

spawn된 DataLoader worker에는 초기화된 torch.distributed가 없으며, 값은 pickling을 통해 전달됩니다.

set_epoch

< >

( epoch: int )

매개변수

  • epoch (int) — shuffle가 활성화된 경우 다음 샘플 계획을 시드하는 데 사용되는 coverage epoch입니다.

다음 예외를 발생시킵니다

ValueError

  • ValueError — epoch이 음수인 경우.

음수 olmayan epoch을 선택하고 rank-local resume offset을 초기화합니다.

state_dict

< >

( ) → dict[str, int]

반환값

dict[str, int]

Epoch, 생성된 샘플 오프셋 및 재개 배치 크기.

반복자의 현재 랭크 로컬 위치를 반환합니다.

Note: DataLoader prefetch를 사용하면 yield된 샘플이 아직 학습에 의해 소비되지 않았을 수 있습니다. 학습 파이프라인은 대신 완료된 단계에서 위치를 복원합니다. 여러 DataLoader 워커가 있는 경우, 각 워커 프로세스는 자신의 위치만 보유합니다.

Update on GitHub