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

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