메인 콘텐츠로 건너뛰기
W&B 서버에 이미 저장되어 있는 Artifacts 를 다운로드하여 사용하거나, Artifacts 오브젝트를 구성하고 필요에 따라 중복 제거를 위해 전달합니다.
보기 전용 권한을 가진 팀 멤버는 Artifacts를 다운로드할 수 없습니다.

W&B에 저장된 Artifacts 다운로드 및 사용

W&B Run 내부 또는 외부에서 W&B에 저장된 Artifacts를 다운로드하여 사용합니다. 이미 W&B에 저장된 데이터를 내보내거나 업데이트하려면 Public API (wandb.Api)를 사용하세요.
먼저, W&B Python SDK를 임포트합니다. 다음으로, W&B Run을 생성합니다:
import wandb

with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 다음 단계를 확인하세요
wandb.Run.use_artifact() 메소드를 사용하여 사용할 Artifacts를 지정합니다. 이 메소드는 run 오브젝트를 반환합니다. 다음 코드 조각에서는 에일리어스가 'latest''bike-dataset'이라는 Artifacts를 지정합니다:
# 사용할 Artifacts를 지정합니다. 형식은 "이름:에일리어스"입니다.
artifact = run.use_artifact("bike-dataset:latest")
반환된 오브젝트를 사용하여 Artifacts의 모든 내용을 다운로드합니다:
# 전체 Artifacts 다운로드
datadir = artifact.download()
선택적으로 root 파라미터에 경로를 전달하여 Artifacts의 내용을 특정 디렉토리로 다운로드할 수 있습니다.파일의 일부 서브셋만 다운로드하려면 wandb.Artifact.get_entry() 메소드를 사용하세요:
# 특정 파일 다운로드
entry = artifact.get_entry(name)
이를 모두 종합하면, 전체 코드 예시는 다음과 같습니다:
import wandb    

with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 사용할 Artifacts를 지정합니다. 형식은 "이름:에일리어스"입니다.
    artifact = run.use_artifact("bike-dataset:latest")

    # 전체 Artifacts 다운로드
    datadir = artifact.download()

    # 특정 파일 다운로드
    entry = artifact.get_entry("bike.png")
이 코드는 name 경로에 있는 파일만 가져옵니다. 다음 메소드를 포함하는 Entry 오브젝트를 반환합니다:
  • Entry.download: name 경로의 Artifacts에서 파일을 다운로드합니다.
  • Entry.ref: add_reference가 엔트리를 참조로 저장한 경우, URI를 반환합니다.

Artifacts 부분 다운로드

접두사(prefix)를 기반으로 Artifacts의 일부를 선택적으로 다운로드할 수 있습니다. 단일 파일이나 하위 폴더의 내용을 다운로드하려면 path_prefix= (wandb.Artifact.download(path_prefix=)) 파라미터를 사용하세요.
with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 사용할 Artifacts를 지정합니다. 형식은 "이름:에일리어스"입니다.
    artifact = run.use_artifact("bike-dataset:latest")

    # 특정 파일 또는 하위 폴더 다운로드
    artifact.download(path_prefix="bike.png") # bike.png만 다운로드합니다.
또는 특정 디렉토리의 파일들을 다운로드할 수 있습니다. 그렇게 하려면 path_prefix= 파라미터 내에 디렉토리를 지정하세요. 이전 코드 조각에 이어서:
# images/bikes 디렉토리에 있는 파일들을 다운로드합니다.
artifact.download(path_prefix="images/bikes/") 

다른 프로젝트의 Artifacts 사용

Artifacts를 참조할 때 프로젝트 이름과 함께 Artifacts 이름을 지정하세요. 또한 Entity 이름과 Artifacts 이름을 함께 지정하여 여러 Entity에 걸친 Artifacts를 참조할 수도 있습니다. 다음 코드 예시는 현재 W&B run의 입력으로 다른 프로젝트의 Artifacts를 쿼리하는 방법을 보여줍니다.
with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 다른 프로젝트의 Artifacts를 W&B에 쿼리하고
    # 이 run의 입력으로 표시합니다.
    artifact = run.use_artifact("my-project/artifact:alias")

    # 다른 Entity의 Artifacts를 사용하고 이 run의 입력으로 표시합니다.
    artifact = run.use_artifact("my-entity/my-project/artifact:alias")

Artifacts 구성 및 동시 사용

Artifacts를 동시에 구성하고 사용합니다. Artifacts 오브젝트를 생성하고 이를 use_artifact에 전달합니다. Artifacts가 W&B에 아직 존재하지 않는 경우 새로 생성됩니다. wandb.Run.use_artifact() API는 멱등성(idempotent)을 가지므로 원하는 만큼 여러 번 호출할 수 있습니다.
import wandb

with wandb.init(project="<example>", job_type="<job-type>") as run:
    artifact = wandb.Artifact("reference model")
    artifact.add_file("model.h5")
    run.use_artifact(artifact)
Artifacts 구성에 대한 자세한 내용은 Artifacts 구성하기를 참조하세요.