메인 콘텐츠로 건너뛰기
GitHub source

function 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 0x100745f80>
) → 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가 이미 존재해야 하므로, 로그 기록을 시작하기 전에 UI에서 계정이나 팀을 생성했는지 확인하세요. 지정하지 않으면 기본 entity로 설정됩니다. 기본 entity를 변경하려면 설정의 “Default team” 아래에 있는 “Default location to create new projects”를 업데이트하세요.
  • project: 이 run이 기록될 프로젝트 이름입니다. 지정하지 않으면 시스템 정보를 기반으로 프로젝트 이름을 추측하는 휴리스틱 방식을 사용합니다 (예: git root 또는 현재 프로그램 파일 확인). 프로젝트 이름을 추측할 수 없는 경우 기본값인 "uncategorized"로 설정됩니다.
  • dir: 실험 로그 및 메타데이터 파일이 저장될 디렉토리의 절대 경로입니다. 지정하지 않으면 기본값은 ./wandb 디렉토리입니다. 이는 download()를 호출할 때 Artifacts가 저장되는 위치에는 영향을 주지 않습니다.
  • id: 재개를 위해 사용되는 이 run의 고유 식별자입니다. 프로젝트 내에서 고유해야 하며, 한 번 삭제된 run의 ID는 재사용할 수 없습니다. 짧고 설명적인 이름이 필요한 경우 name 필드를 사용하고, 여러 run 간에 비교할 하이퍼파라미터를 저장하려면 config를 사용하세요.
  • name: UI에서 run을 식별하는 데 도움이 되는 짧은 표시 이름입니다. 기본적으로 테이블에서 차트를 쉽게 대조할 수 있도록 임의의 두 단어 조합 이름을 생성합니다. run 이름을 짧게 유지하면 차트 범례와 테이블의 가독성이 좋아집니다. 하이퍼파라미터 저장에는 config 필드 사용을 권장합니다.
  • notes: Git의 커밋 메시지와 유사한 run에 대한 상세 설명입니다. 나중에 이 run의 목적이나 설정을 기억하는 데 도움이 될 만한 컨텍스트나 세부 정보를 캡처하는 데 사용하세요.
  • tags: UI에서 이 run을 라벨링하기 위한 태그 리스트입니다. 태그는 run을 정리하거나 “baseline” 또는 “production”과 같은 임시 식별자를 추가하는 데 유용합니다. UI에서 쉽게 태그를 추가, 제거하거나 태그로 필터링할 수 있습니다. run을 재개할 경우, 여기서 제공된 태그가 기존 태그를 대체합니다. 현재 태그를 덮어쓰지 않고 재개된 run에 태그를 추가하려면 run = wandb.init() 호출 후 run.tags += ("new_tag",)를 사용하세요.
  • config: 모델 하이퍼파라미터나 데이터 전처리 설정과 같은 run의 입력 파라미터를 저장하는 사전(dictionary) 형태의 오브젝트인 wandb.config를 설정합니다. config는 UI의 개요 페이지에 표시되어 이러한 파라미터를 기반으로 run을 그룹화, 필터링 및 정렬할 수 있습니다. 키(Key)에는 마침표(.)가 포함되어서는 안 되며, 값(Value)은 10MB보다 작아야 합니다. argparse.Namespace 또는 absl.flags.FLAGS가 제공되면 키-값 쌍이 wandb.config에 직접 로드됩니다. 문자열이 제공되면 YAML 파일 경로로 해석되어 해당 파일의 설정값이 wandb.config에 로드됩니다.
  • config_exclude_keys: wandb.config에서 제외할 특정 키의 리스트입니다.
  • config_include_keys: wandb.config에 포함할 특정 키의 리스트입니다.
  • allow_val_change: 초기 설정 후 config 값을 수정할 수 있는지 여부를 제어합니다. 기본적으로 config 값을 덮어쓰려고 하면 예외가 발생합니다. 학습률과 같이 트레이닝 중에 변하는 변수를 트래킹하려면 대신 wandb.log()를 사용하는 것이 좋습니다. 기본적으로 스크립트에서는 False이고 노트북 환경에서는 True입니다.
  • group: 개별 run들을 더 큰 실험의 일부로 정리하기 위해 그룹 이름을 지정합니다. 교차 검증(cross-validation)이나 서로 다른 테스트 세트에서 모델을 트레이닝하고 평가하는 여러 작업을 실행하는 경우 유용합니다. 그룹화를 통해 UI에서 관련 run들을 집합적으로 관리하고 결과를 통합된 실험으로 쉽게 검토할 수 있습니다.
  • job_type: run의 유형을 지정하며, 특히 큰 실험의 일부로 그룹 내 run들을 정리할 때 유용합니다. 예를 들어, 한 그룹 내에서 run을 “train” 및 “eval”과 같은 job 유형으로 라벨링할 수 있습니다. job 유형을 정의하면 UI에서 유사한 run들을 쉽게 필터링하고 그룹화하여 직접 비교할 수 있습니다.
  • mode: run 데이터가 관리되는 방식을 지정하며 다음 옵션이 있습니다:
    • "online" (기본값): 네트워크 연결이 가능할 때 W&B와 실시간 동기화를 활성화하여 시각화 자료를 실시간으로 업데이트합니다.
    • "offline": 인터넷이 차단된 환경이나 오프라인 환경에 적합합니다. 데이터가 로컬에 저장되며 나중에 동기화할 수 있습니다. 나중에 동기화할 수 있도록 run 폴더를 보존해야 합니다.
    • "disabled": 모든 W&B 기능을 비활성화하여 run의 메소드들이 아무 동작도 하지 않게(no-ops) 만듭니다. 주로 테스트 시 W&B 작업을 우회하기 위해 사용됩니다.
    • "shared": (실험적 기능). 서로 다른 머신에 있는 여러 프로세스가 동일한 run에 동시에 로그를 기록할 수 있게 합니다. 이 방식에서는 하나의 기본 노드와 하나 이상의 워커 노드를 사용하여 동일한 run에 데이터를 기록합니다. 기본 노드에서 run을 초기화하고, 각 워커 노드에서는 기본 노드에서 사용한 run ID를 사용하여 run을 초기화합니다.
  • force: 스크립트를 실행하기 위해 W&B 로그인이 필수인지 여부를 결정합니다. True인 경우 사용자가 W&B에 로그인되어 있어야 하며, 그렇지 않으면 스크립트가 진행되지 않습니다. False(기본값)인 경우 로그인 없이도 진행할 수 있으며, 로그인되어 있지 않으면 오프라인 모드로 전환됩니다.
  • reinit: “reinit” 설정의 축약형입니다. 이미 활성화된 run이 있을 때 wandb.init()의 행동을 결정합니다.
  • resume: 지정된 id로 run을 재개할 때의 행동을 제어합니다. 사용 가능한 옵션은 다음과 같습니다:
    • "allow": 지정된 id를 가진 run이 존재하면 마지막 단계부터 재개하고, 없으면 새로운 run을 생성합니다.
    • "never": 지정된 id를 가진 run이 이미 존재하면 에러를 발생시킵니다. 해당 run이 없으면 새로운 run을 생성합니다.
    • "must": 지정된 id를 가진 run이 존재하면 마지막 단계부터 재개합니다. run을 찾을 수 없으면 에러를 발생시킵니다.
    • "auto": 이 머신에서 충돌이 발생했던 이전 run이 있으면 자동으로 재개하고, 그렇지 않으면 새로운 run을 시작합니다.
    • True: 권장되지 않음(Deprecated). 대신 "auto"를 사용하세요.
    • False: 권장되지 않음(Deprecated). 항상 새로운 run을 시작하려면 기본 동작(resume을 설정하지 않음)을 사용하세요. resume이 설정된 경우 fork_fromresume_from을 사용할 수 없습니다. resume이 설정되지 않은 경우 시스템은 항상 새로운 run을 시작합니다.
  • resume_from: {run_id}?_step={step} 형식을 사용하여 이전 run의 특정 시점부터 재개하도록 지정합니다. 이를 통해 사용자는 run에 기록된 이력을 중간 단계에서 자르고 해당 단계부터 다시 로그 기록을 재개할 수 있습니다. 대상 run은 동일한 프로젝트 내에 있어야 합니다. id 인수가 함께 제공되면 resume_from 인수가 우선순위를 갖습니다. resume, resume_from, fork_from은 동시에 사용할 수 없으며 한 번에 하나만 사용할 수 있습니다. 이 기능은 베타 버전이며 향후 변경될 수 있습니다.
  • fork_from: {id}?_step={step} 형식을 사용하여 이전 run의 특정 시점에서 새로운 run을 포크(fork)하도록 지정합니다. 이는 대상 run 이력의 지정된 단계부터 로그 기록을 재개하는 새로운 run을 생성합니다. 대상 run은 현재 프로젝트의 일부여야 합니다. id 인수가 함께 제공되는 경우 fork_from 인수와 달라야 하며, 같으면 에러가 발생합니다. resume, resume_from, fork_from은 동시에 사용할 수 없으며 한 번에 하나만 사용할 수 있습니다. 이 기능은 베타 버전이며 향후 변경될 수 있습니다.
  • save_code: 메인 스크립트나 노트북을 W&B에 저장하도록 설정하여 실험 재현성을 돕고 UI에서 run 간의 코드 비교를 가능하게 합니다. 기본적으로 비활성화되어 있지만, 설정 페이지에서 기본값을 변경하여 활성화할 수 있습니다.
  • tensorboard: 권장되지 않음(Deprecated). 대신 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: 사용자가 실행을 중단한 경우.
예시: wandb.init()Run 오브젝트를 반환합니다. 이 run 오브젝트를 사용하여 데이터를 로깅하고, Artifacts를 저장하며, run의 라이프사이클을 관리하세요.
import wandb

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