메인 콘텐츠로 건너뛰기

함수 init

init(
    entity: 'str | None' = None,
    project: 'str | None' = None,
    dir: 'StrPath | None' = None,
    id: 'str | None' = None,
    name: 'str | None' = None,
    notes: 'str | None' = None,
    tags: 'Sequence[str] | None' = None,
    config: 'dict[str, Any] | str | None' = None,
    config_exclude_keys: 'list[str] | None' = None,
    config_include_keys: 'list[str] | None' = None,
    allow_val_change: 'bool | None' = None,
    group: 'str | None' = None,
    job_type: 'str | None' = None,
    mode: "Literal['online', 'offline', 'disabled', 'shared'] | None" = None,
    force: 'bool | None' = None,
    reinit: "bool | Literal[None, 'default', 'return_previous', 'finish_previous', 'create_new']" = None,
    resume: "bool | Literal['allow', 'never', 'must', 'auto'] | None" = None,
    resume_from: 'str | None' = None,
    fork_from: 'str | None' = None,
    save_code: 'bool | None' = None,
    tensorboard: 'bool | None' = None,
    sync_tensorboard: 'bool | None' = None,
    monitor_gym: 'bool | None' = None,
    settings: 'Settings | dict[str, Any] | None' = None,
    anonymous: 'DoNotSet' = <object object at 0x109961240>
) → Run
W&B에 추적 및 로깅할 새 run을 시작합니다. ML 트레이닝 파이프라인에서는 트레이닝 스크립트와 평가 스크립트의 시작 부분에 wandb.init()를 추가할 수 있으며, 각각은 W&B에서 run으로 추적됩니다. wandb.init()는 run에 데이터를 로깅하기 위한 새 백그라운드 프로세스를 생성하고, 기본적으로 데이터를 https://wandb.ai에 동기화하므로 결과를 실시간으로 확인할 수 있습니다. 데이터 로깅이 끝나면 wandb.Run.finish()를 호출해 run을 종료하세요. run.finish()를 호출하지 않으면 스크립트가 종료될 때 run도 함께 종료됩니다. run ID에는 다음 특수 문자를 포함할 수 없습니다: / \ # ? % : 매개변수:
  • entity: run을 로깅할 사용자 이름 또는 팀 이름입니다. entity는 이미 존재해야 하므로 run 로깅을 시작하기 전에 UI에서 계정이나 팀을 만들어야 합니다. 지정하지 않으면 run은 기본 entity를 사용합니다. 기본 entity를 변경하려면 Settings로 이동해 “Default team” 아래의 “Default location to create new projects”를 업데이트하세요.
  • project: 이 run이 로깅될 프로젝트 이름입니다. 지정하지 않으면 git 루트나 현재 프로그램 파일을 확인하는 등 시스템 정보를 바탕으로 프로젝트 이름을 추론하는 휴리스틱을 사용합니다. 프로젝트 이름을 추론할 수 없으면 기본값으로 `“uncategorized”“가 사용됩니다.
  • dir: 실험 로그와 메타데이터 파일이 저장되는 디렉터리의 절대 경로입니다. 지정하지 않으면 기본적으로 ./wandb 디렉터리를 사용합니다. download()를 호출할 때 Artifacts가 저장되는 위치에는 영향을 주지 않습니다.
  • id: 재개할 때 사용하는 이 run의 고유 식별자입니다. 프로젝트 내에서 고유해야 하며, run이 삭제된 후에는 다시 사용할 수 없습니다. 짧고 설명적인 이름에는 name 필드를 사용하고, run 간 비교를 위해 하이퍼파라미터를 저장하려면 config를 사용하세요.
  • name: 이 run의 짧은 표시 이름으로, UI에 표시되어 사용자가 이 run을 쉽게 파악할 수 있도록 도와줍니다. 기본적으로는 무작위 두 단어 이름을 생성하므로 표와 차트에서 run을 쉽게 교차 참조할 수 있습니다. run 이름을 짧게 유지하면 차트 범례와 표에서 가독성이 높아집니다. 하이퍼파라미터를 저장하려면 config 필드를 사용하는 것을 권장합니다.
  • notes: Git의 커밋 메시지와 비슷한, run에 대한 자세한 설명입니다. 이 인수를 사용해 나중에 이 run의 목적이나 설정을 떠올리는 데 도움이 될 수 있는 컨텍스트나 세부 정보를 기록하세요.
  • tags: UI에서 이 run에 라벨을 지정하는 tags 목록입니다. Tags는 runs를 정리하거나 “baseline” 또는 “프로덕션” 같은 임시 식별자를 추가하는 데 유용합니다. UI에서 tags를 쉽게 추가하거나 제거하고, tags로 필터링할 수 있습니다. run을 재개하면 여기서 제공한 tags가 기존 tags를 모두 대체합니다. 현재 tags를 덮어쓰지 않고 재개한 run에 tags를 추가하려면 run = wandb.init()를 호출한 후 run.tags += ("new_tag",)를 사용하세요.
  • config: wandb.config를 설정합니다. 이는 모델 하이퍼파라미터나 데이터 전처리 설정처럼 run의 입력 파라미터를 저장하는 딕셔너리형 객체입니다. config는 UI의 Overview 페이지에 표시되며, 이러한 파라미터를 기준으로 run을 그룹화, 필터링, 정렬할 수 있습니다. 키에는 마침표(.)가 포함되면 안 되며, 값은 10MB보다 작아야 합니다. 딕셔너리, argparse.Namespace, 또는 absl.flags.FLAGS가 제공되면 키-값 쌍이 바로 wandb.config에 로드됩니다. 문자열이 제공되면 YAML 파일 경로로 해석되며, 해당 파일의 설정 값이 wandb.config에 로드됩니다.
  • config_exclude_keys: wandb.config에서 제외할 특정 키 목록.
  • config_include_keys: wandb.config에 포함할 특정 키 목록입니다.
  • allow_val_change: 초기 설정 이후에 설정 값의 변경을 허용할지 여부를 제어합니다. 기본적으로 설정 값을 덮어쓰면 예외가 발생합니다. 학습률처럼 트레이닝 중에 변경되는 변수를 추적하려면 대신 wandb.log()를 사용하는 것이 좋습니다. 기본적으로 스크립트에서는 False이고 Notebook 환경에서는 True입니다.
  • group: 더 큰 실험의 일부로 개별 run을 구성할 수 있도록 그룹 이름을 지정합니다. 교차 검증처럼 서로 다른 테스트 세트에서 모델을 트레이닝하고 평가하는 여러 작업을 실행하는 경우에 유용합니다. 그룹화하면 UI에서 관련 run을 함께 관리할 수 있으므로, 결과를 하나의 통합된 실험으로 쉽게 표시/숨기기하고 검토할 수 있습니다.
  • job_type: run의 유형을 지정합니다. 특히 더 큰 실험의 일부로 그룹 내 run들을 정리할 때 유용합니다. 예를 들어 그룹에서 run에 “train” 및 “eval”과 같은 작업 유형 레이블을 지정할 수 있습니다. 작업 유형을 정의하면 UI에서 유사한 run을 쉽게 필터링하고 그룹화할 수 있으므로, 직접 비교가 쉬워집니다.
  • mode: 다음 옵션 중 하나로 run 데이터 관리 방식을 지정합니다:
    • "online" (기본값): 네트워크 연결이 가능할 때 W&B와 실시간 동기화를 활성화하며, 시각화가 실시간으로 업데이트됩니다.
    • "offline": air-gapped 또는 오프라인 환경에 적합합니다. 데이터는 로컬에 저장되며 나중에 동기화할 수 있습니다. 이후 동기화할 수 있도록 run 폴더를 보존해야 합니다.
    • "disabled": 모든 W&B 기능을 비활성화하여 run의 메서드가 no-op가 되게 합니다. 일반적으로 테스트에서 W&B 오퍼레이션을 우회할 때 사용됩니다.
    • "shared": (실험적 기능입니다). 서로 다른 머신에서 실행될 수도 있는 여러 프로세스가 동일한 run에 동시에 log할 수 있도록 합니다. 이 방식에서는 기본 노드와 하나 이상의 워커 노드를 사용해 동일한 run에 데이터를 log합니다. 기본 노드에서 run을 초기화합니다. 각 워커 노드에서는 기본 노드가 사용한 run ID로 run을 초기화합니다.
  • force: 스크립트를 실행할 때 W&B 로그인이 필요한지 확인합니다. True이면 사용자는 W&B에 로그인되어 있어야 하며, 그렇지 않으면 스크립트가 실행되지 않습니다. False(기본값)이면 로그인 없이도 스크립트를 실행할 수 있으며, 사용자가 로그인하지 않은 경우 오프라인 모드로 전환됩니다.
  • reinit: “reinit” 설정의 줄임말입니다. run이 활성 상태일 때 wandb.init()의 동작을 확인합니다.
  • resume: 지정한 id로 run을 재개할 때의 동작을 제어합니다. 사용 가능한 옵션은 다음과 같습니다:
    • "allow": 지정한 id의 run이 있으면 마지막 step부터 재개하고, 없으면 새 run을 생성합니다.
    • "never": 지정한 id의 run이 있으면 오류가 발생합니다. 해당 run이 없으면 새 run을 생성합니다.
    • "must": 지정한 id의 run이 있으면 마지막 step부터 재개합니다. 해당 run이 없으면 오류가 발생합니다.
    • "auto": 이 머신에서 이전 run이 비정상 종료된 경우 자동으로 재개하고, 그렇지 않으면 새 run을 시작합니다.
    • True: 사용 중단되었습니다. 대신 "auto"를 사용하세요.
    • False: 사용 중단되었습니다. 항상 새 run을 시작하려면 기본 동작(resume을 설정하지 않음)을 사용하세요. resume이 설정되면 fork_fromresume_from은 사용할 수 없습니다. resume이 설정되지 않으면 시스템은 항상 새 run을 시작합니다.
  • resume_from: {run_id}?_step={step} 형식을 사용해 이전 run의 특정 시점부터 run을 재개할 위치를 지정합니다. 이를 통해 사용자는 중간 step에서 run에 로깅된 이력을 잘라내고, 해당 step부터 다시 로깅을 재개할 수 있습니다. 대상 run은 동일한 프로젝트에 있어야 합니다. id 인수도 함께 제공되면 resume_from 인수가 우선 적용됩니다. resume, resume_from, fork_from은 함께 사용할 수 없으며, 한 번에 하나만 사용할 수 있습니다. 이 기능은 베타 버전이므로 향후 변경될 수 있습니다.
  • fork_from: {id}?_step={step} 형식을 사용해 이전 run의 특정 지점에서 새 run을 포크하도록 지정합니다. 이렇게 하면 대상 run의 이력에서 지정한 step부터 로깅을 재개하는 새 run이 생성됩니다. 대상 run은 현재 프로젝트에 속해 있어야 합니다. id 인수도 함께 제공하는 경우 fork_from 인수와 달라야 하며, 둘이 같으면 오류가 발생합니다. resume, resume_from, fork_from은 함께 사용할 수 없으며 한 번에 하나만 사용할 수 있습니다. 이 기능은 베타 버전이므로 향후 변경될 수 있습니다.
  • save_code: 기본 스크립트나 노트북을 W&B에 저장해 실험 재현성을 높이고 UI에서 여러 run 간 코드를 비교할 수 있게 합니다. 기본적으로는 비활성화되어 있지만, Settings 페이지에서 기본값을 변경해 활성화할 수 있습니다.
  • tensorboard: 사용이 중단되었습니다. 대신 sync_tensorboard를 사용하세요.
  • sync_tensorboard: TensorBoard 또는 TensorBoardX의 W&B 로그를 자동으로 동기화하고, W&B UI에서 확인할 수 있도록 관련 이벤트 파일을 저장합니다.
  • monitor_gym: OpenAI Gym 사용 시 환경 비디오를 자동으로 로깅하도록 합니다.
  • settings: run의 고급 설정을 담은 딕셔너리 또는 wandb.Settings 객체를 지정합니다.
반환값: Run 객체입니다. 예외:
  • Error: run 초기화 중 알 수 없거나 내부 오류가 발생한 경우입니다.
  • AuthenticationError: 사용자가 유효한 자격 증명을 제공하지 못한 경우입니다.
  • CommError: WandB 서버와 통신하는 중 문제가 발생한 경우입니다.
  • UsageError: 사용자가 잘못된 인수를 제공한 경우입니다.
  • KeyboardInterrupt: 사용자가 run을 중단한 경우입니다.
예제: wandb.init()Run 객체를 반환합니다. run 객체를 사용해 데이터를 로깅하고, artifact를 저장하고, run 수명 주기를 관리할 수 있습니다.
import wandb

config = {"lr": 0.01, "batch_size": 32}
with wandb.init(config=config) as run:
    # run에 정확도와 loss를 로깅합니다
    acc = 0.95  # 정확도 예시
    loss = 0.05  # loss 예시
    run.log({"accuracy": acc, "loss": loss})