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

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

W&B Run 내부 또는 외부에서 W&B에 저장된 아티팩트를 다운로드해 사용할 수 있습니다. 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() 방법을 사용해 사용할 아티팩트를 지정합니다. 이 방법은 객체를 반환합니다. 다음 코드 스니펫에서는 별칭이 'latest''bike-dataset' 아티팩트를 지정합니다.
# 사용할 아티팩트를 지정합니다. 형식은 "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가 해당 항목을 참조로 저장한 경우 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/") 

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

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

    # 다른 entity의 아티팩트를 사용하고 이 run의 입력으로
    # 표시합니다.
    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)
아티팩트를 만드는 방법에 대한 자세한 내용은 아티팩트 만들기를 참조하세요.