메인 콘텐츠로 건너뛰기
W&B 서버에 이미 저장된 아티팩트를 다운로드하여 사용하거나, 아티팩트 객체를 생성해 필요에 따라 중복 제거(de-duplication)에 사용하도록 전달할 수 있습니다.
보기 전용 시트를 가진 팀원은 아티팩트를 다운로드할 수 없습니다.

W&B에 저장된 아티팩트 다운로드 및 사용

W&B에 저장된 아티팩트를 W&B 실행 내부 또는 외부에서 다운로드하고 사용할 수 있습니다. Public API(wandb.Api)를 사용해 W&B에 이미 저장된 데이터를 내보내거나(또는 업데이트)할 수 있습니다.
먼저 W&B Python SDK를 import 합니다. 그런 다음 W&B 실행을 생성합니다:
import wandb

with wandb.init(project="<example>", job_type="<job-type>") as run:
    # See next step
wandb.Run.use_artifact() 메서드를 사용해 사용하려는 아티팩트를 지정합니다. 이 메서드는 실행 객체를 반환합니다. 다음 코드 스니펫에서는 'bike-dataset'이라는 아티팩트와 'latest'라는 alias를 지정합니다:
# 사용할 아티팩트를 지정합니다. 형식은 "name:alias" 입니다
artifact = run.use_artifact("bike-dataset:latest")
반환된 객체를 사용해 아티팩트의 모든 콘텐츠를 다운로드합니다:
# 전체 아티팩트 다운로드
datadir = artifact.download()
선택적으로 root 매개변수에 경로를 전달해, 아티팩트의 콘텐츠를 특정 디렉토리로 다운로드할 수 있습니다.wandb.Artifact.get_entry() 메서드를 사용해 파일의 일부만 다운로드합니다:
# 특정 파일 다운로드
entry = artifact.get_entry(name)
이를 모두 합치면 전체 코드 예시는 다음과 같습니다:
import wandb    

with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 사용할 아티팩트를 지정합니다. 형식은 "name:alias" 입니다
    artifact = run.use_artifact("bike-dataset:latest")

    # 전체 아티팩트 다운로드
    datadir = artifact.download()

    # 특정 파일 다운로드
    entry = artifact.get_entry("bike.png")
이 코드는 경로 name에 있는 파일만 가져옵니다. Entry 객체를 반환하며, 다음 메서드를 포함합니다:
  • Entry.download: 경로 name에 있는 아티팩트의 파일을 다운로드합니다
  • Entry.ref: add_reference로 엔트리를 reference로 저장한 경우, 해당 URI를 반환합니다

아티팩트를 부분적으로 다운로드하기

접두사를 기준으로 아티팩트의 일부만 선택적으로 다운로드할 수 있습니다. path_prefix=(wandb.Artifact.download(path_prefix=)) 파라미터를 사용하여 단일 파일이나 하위 폴더의 내용을 다운로드하세요.
with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 사용할 아티팩트를 지정합니다. 형식은 "name:alias"입니다
    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/") 

다른 프로젝트의 아티팩트 사용하기

아티팩트를 참조하려면 아티팩트 이름과 함께 해당 프로젝트 이름을 지정합니다. 또한 아티팩트 이름과 함께 엔터티 이름을 지정하여 엔터티 간에 아티팩트를 참조할 수도 있습니다. 다음 코드 예제는 다른 프로젝트의 아티팩트를 현재 W&B 실행의 입력으로 가져오는 방법을 보여줍니다.
with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 다른 프로젝트의 아티팩트를 W&B에서 조회하고 이 실행의
    # 입력으로 표시합니다.
    artifact = run.use_artifact("my-project/artifact:alias")

    # 다른 엔터티의 아티팩트를 사용하고 이 실행의 입력으로
    # 표시합니다.
    artifact = run.use_artifact("my-entity/my-project/artifact:alias")

아티팩트를 동시에 생성하고 사용하기

아티팩트를 동시에 생성하고 사용할 수 있습니다. 아티팩트 객체를 생성한 다음 use_artifact에 전달하세요. 아직 존재하지 않는 경우 W&B에 아티팩트가 생성됩니다. wandb.Run.use_artifact() API는 멱등성이 있으므로 원하는 만큼 여러 번 호출할 수 있습니다.
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)
아티팩트 구성에 대해 더 자세히 알아보려면 아티팩트 구성하기를 참조하세요.