메인 콘텐츠로 건너뛰기
GitHub 소스 코드

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 0x102561240>
) → Run
새 실행을 시작하여 W&B에 추적 정보와 로그를 기록합니다. ML 학습 파이프라인에서 학습 스크립트와 평가 스크립트의 시작 부분에 wandb.init()을 추가하면, 각각이 W&B에서 별도의 실행으로 추적됩니다. wandb.init()은 해당 실행에 데이터를 기록하기 위한 새 백그라운드 프로세스를 생성하며, 기본적으로 데이터를 https://wandb.ai 로 동기화하여 결과를 실시간으로 확인할 수 있게 합니다. 데이터 로깅을 마치면 wandb.Run.finish()를 호출하여 실행을 종료합니다. run.finish()를 호출하지 않으면, 스크립트가 종료될 때 실행도 함께 종료됩니다. 실행 ID에는 다음 특수 문자를 포함할 수 없습니다: / \ # ? % : 인자(Args):
  • entity: 실행이 기록되는 사용자 이름 또는 팀 이름입니다. 엔터티는 미리 존재해야 하므로, 실행 기록을 시작하기 전에 UI에서 계정 또는 팀을 먼저 생성해야 합니다. 지정하지 않으면 실행은 기본 엔터티에 기록됩니다. 기본 엔터티를 변경하려면 설정으로 이동하여 “Default team” 아래의 “Default location to create new projects” 항목을 업데이트하십시오.
  • project: 이 실행이 기록될 프로젝트의 이름입니다. 지정하지 않으면 git 루트나 현재 프로그램 파일을 확인하는 등 시스템 정보를 바탕으로 한 휴리스틱을 사용해 프로젝트 이름을 추론합니다. 프로젝트 이름을 추론할 수 없는 경우, 프로젝트 이름은 기본값 "uncategorized"로 설정됩니다.
  • dir: 실험 로그와 메타데이터 파일이 저장되는 디렉터리의 절대 경로입니다. 지정하지 않으면 기본값으로 ./wandb 디렉터리가 사용됩니다. 이 값은 download()를 호출할 때 아티팩트가 저장되는 위치에는 영향을 주지 않습니다.
  • id: 이 실행을 재개할 때 사용되는 고유 식별자입니다. 해당 프로젝트 내에서 고유해야 하며, 실행이 삭제된 후에는 다시 사용할 수 없습니다. 짧은 설명용 이름이 필요하다면 name 필드를 사용하고, 실행 간 비교를 위한 하이퍼파라미터를 저장하려면 config를 사용하십시오.
  • name: UI에 표시되는 이 실행의 짧은 표시 이름입니다. 기본적으로 무작위 두 단어로 된 이름을 생성하여 테이블과 차트 간에 실행을 쉽게 상호 참조할 수 있도록 합니다. 이러한 실행 이름을 짧게 유지하면 차트 범례와 테이블의 가독성이 향상됩니다. 하이퍼파라미터를 저장하려면 config 필드를 사용할 것을 권장합니다.
  • notes: 실행에 대한 자세한 설명으로, Git의 커밋 메시지와 유사합니다. 이 인수를 사용해 나중에 이 실행의 목적이나 설정을 떠올리는 데 도움이 될 수 있는 모든 맥락이나 세부 정보를 기록하세요.
  • tags: UI에서 이 실행에 레이블을 지정하기 위한 태그 목록입니다. 태그는 실행을 정리하거나 “baseline” 또는 “production”과 같은 임시 식별자를 추가할 때 유용합니다. UI에서 태그를 쉽게 추가·삭제하거나 태그로 필터링할 수 있습니다. 실행을 재개(resume)하는 경우, 여기에서 제공한 태그가 기존 태그를 모두 대체합니다. 현재 태그를 덮어쓰지 않고 재개된 실행에 태그를 추가하려면 run = wandb.init()을 호출한 후 run.tags += ("new_tag",)를 사용하세요.
  • config: wandb.config를 설정합니다. wandb.config는 모델 하이퍼파라미터나 데이터 전처리 설정과 같은 실행의 입력 파라미터를 저장하는 딕셔너리 유사 객체입니다. 이 config는 UI의 개요 페이지에 표시되며, 이를 기반으로 실행을 그룹화하고, 필터링하고, 정렬할 수 있습니다. 키에는 마침표(.)를 포함할 수 없으며, 값은 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, 노트북 환경에서는 True입니다.
  • group: 개별 실행을 더 큰 실험의 일부로 묶기 위해 그룹 이름을 지정합니다. 이는 교차 검증처럼 여러 작업을 실행하거나, 서로 다른 테스트 세트에 대해 모델을 학습하고 평가하는 여러 작업을 돌릴 때 유용합니다. 그룹화를 사용하면 UI에서 관련 실행을 한꺼번에 관리할 수 있어, 하나의 통합된 실험처럼 결과를 전환해 가며 살펴보기 쉽습니다.
  • job_type: 실행 유형을 지정합니다. 특히 더 큰 실험의 일부로, 하나의 그룹 내에서 실행을 체계적으로 구성할 때 유용합니다. 예를 들어, 한 그룹에서 실행에 “train” 및 “eval”과 같은 job type을 지정할 수 있습니다. job type을 정의하면 UI에서 유사한 실행을 쉽게 필터링하고 그룹화할 수 있어 직접 비교하기가 쉬워집니다.
  • mode: 실행 데이터 관리 방식을 지정하며, 옵션은 다음과 같습니다:
    • "online"(기본값): 네트워크 연결이 가능할 때 W&B와 실시간 동기화를 활성화하여 시각화를 실시간으로 업데이트합니다.
    • "offline": 에어갭(air-gapped) 또는 오프라인 환경에 적합합니다. 데이터는 로컬에 저장되며 나중에 동기화할 수 있습니다. 이후 동기화를 위해 실행 폴더가 유지되도록 하십시오.
    • "disabled": 모든 W&B 기능을 비활성화하여 실행의 메서드를 no-op으로 만듭니다. 일반적으로 테스트 시 W&B 동작을 우회하기 위해 사용합니다.
    • "shared": (실험적 기능입니다.) 여러 프로세스가, 필요하다면 서로 다른 머신에서, 동일한 실행에 동시에 로그를 기록할 수 있도록 합니다. 이 방식에서는 기본 노드(primary node)와 하나 이상의 워커 노드(worker node)를 사용해 동일한 실행에 데이터를 기록합니다. 기본 노드에서 실행을 초기화한 후, 각 워커 노드에서는 기본 노드에서 사용한 실행 ID를 사용해 실행을 초기화합니다.
  • force: 스크립트 실행 시 W&B 로그인이 필요한지 여부를 결정합니다. True이면 사용자가 W&B에 로그인되어 있어야 하며, 그렇지 않으면 스크립트가 실행되지 않습니다. False(기본값)이면 로그인 없이도 스크립트를 계속 실행할 수 있으며, 사용자가 로그인하지 않은 경우 오프라인 모드로 전환됩니다.
  • reinit: “reinit” 설정의 약칭입니다. 실행이 활성 상태일 때 wandb.init()의 동작을 결정합니다.
  • resume: 지정된 id의 실행을 재개할 때 동작을 제어합니다. 사용할 수 있는 옵션은 다음과 같습니다:
    • "allow": 지정된 id를 가진 실행이 이미 존재하면 마지막 단계부터 재개합니다. 존재하지 않으면 새 실행을 생성합니다.
    • "never": 지정된 id를 가진 실행이 이미 존재하면 오류가 발생합니다. 해당 실행이 없으면 새 실행을 생성합니다.
    • "must": 지정된 id를 가진 실행이 이미 존재하면 마지막 단계부터 재개합니다. 실행이 없으면 오류가 발생합니다.
    • "auto": 이 머신에서 이전 실행이 비정상 종료(crash)된 경우 자동으로 해당 실행을 재개합니다. 그렇지 않으면 새 실행을 시작합니다.
    • True: 더 이상 사용되지 않습니다. 대신 "auto"를 사용하세요.
    • False: 더 이상 사용되지 않습니다. 항상 새 실행을 시작하려면 기본 동작(resume을 설정하지 않음)을 사용하세요. resume이 설정된 경우 fork_fromresume_from은 사용할 수 없습니다. resume이 설정되지 않은 경우 시스템은 항상 새 실행을 시작합니다.
  • resume_from: 이전 실행에서 재개할 시점을 {run_id}?_step={step} 형식으로 지정합니다. 이를 통해 실행에 기록된 이력을 중간 단계에서 잘라내고, 해당 단계부터 다시 로깅을 재개할 수 있습니다. 대상 실행은 동일한 프로젝트 내에 있어야 합니다. id 인자도 함께 제공된 경우, resume_from 인자가 우선합니다. resume, resume_from, fork_from는 동시에 사용할 수 없으며, 한 번에 하나만 사용할 수 있습니다. 이 기능은 현재 베타 기능이며, 향후 변경될 수 있습니다.
  • fork_from: 이전 실행에서 새 실행을 분기(fork)할 기준 지점을 {id}?_step={step} 형식으로 지정합니다. 이렇게 하면 대상 실행의 히스토리에서 지정한 step부터 로깅을 재개하는 새 실행이 생성됩니다. 대상 실행은 현재 프로젝트에 속해 있어야 합니다. id 인수도 함께 제공되는 경우 반드시 fork_from 인수와 달라야 하며, 동일하면 오류가 발생합니다. resume, resume_from, fork_from는 동시에 사용할 수 없으며, 한 번에 하나만 사용할 수 있습니다. 이 기능은 현재 베타 단계이며, 향후 변경될 수 있습니다.
  • save_code: 메인 스크립트나 노트북을 W&B에 저장하여 실험 재현성을 높이고, UI에서 실행 간 코드 비교를 할 수 있게 합니다. 기본적으로 비활성화되어 있지만, 설정 페이지에서 기본 설정을 변경해 활성화할 수 있습니다.
  • tensorboard: 사용이 중단되었습니다. 대신 sync_tensorboard를 사용하세요.
  • sync_tensorboard: TensorBoard 또는 TensorBoardX에서 W&B 로그를 자동으로 동기화하며, W&B UI에서 확인할 수 있도록 관련 이벤트 파일을 저장합니다.
  • monitor_gym: OpenAI Gym을 사용할 때 환경의 비디오를 자동으로 기록하도록 활성화합니다.
  • settings: 실행에 대한 고급 설정을 담은 딕셔너리 또는 wandb.Settings 객체를 지정합니다.
반환값: Run 객체를 반환합니다. 예외:
  • Error: 실행을 초기화하는 동안 알 수 없거나 내부 오류가 발생한 경우.
  • AuthenticationError: 사용자가 올바른 자격 증명을 제공하지 못한 경우.
  • CommError: W&B 서버와의 통신에 문제가 발생한 경우.
  • UsageError: 사용자가 잘못된 인수를 제공한 경우.
  • KeyboardInterrupt: 사용자가 실행을 중단한 경우.
예시: wandb.init()Run 객체를 반환합니다. 실행 객체를 사용해 데이터를 로그로 남기고, 아티팩트를 저장하며, 실행 라이프사이클을 관리할 수 있습니다.
import wandb

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