이미 W&B 서버에 저장된 아티팩트를 다운로드해 사용하거나, 아티팩트 객체를 생성해 필요에 따라 중복 제거를 위해 전달할 수 있습니다.
보기 전용 시트가 할당된 팀 구성원은 아티팩트를 다운로드할 수 없습니다.
W&B에 저장된 아티팩트를 W&B run 내부 또는 외부에서 다운로드해 사용할 수 있습니다. Public API(wandb.Api)를 사용하여 W&B에 이미 저장된 데이터를 내보내거나(export) 업데이트할 수 있습니다.
run 중에 사용
run 외부에서 사용
W&B CLI
먼저 W&B Python SDK를 import 합니다. 다음으로 W&B Run을 생성합니다:import wandb
with wandb.init(project="<example>", job_type="<job-type>") as run:
# 다음 단계 참고
wandb.Run.use_artifact() 메서드를 사용하여 사용하려는 아티팩트를 지정합니다. 이 메서드는 run 객체를 반환합니다. 다음 코드 스니펫에서는 '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를 반환합니다.
먼저 W&B SDK를 import 합니다. 다음으로 Public API 클래스에서 아티팩트 객체를 생성합니다. 해당 아티팩트와 연결된 entity, project, artifact, alias를 지정합니다:import wandb
api = wandb.Api()
artifact = api.artifact("entity/project/artifact:alias")
반환된 객체를 사용하여 아티팩트의 내용을 다운로드합니다:선택적으로 root 파라미터에 경로를 전달하여 아티팩트의 내용을 특정 디렉터리로 다운로드할 수 있습니다. 자세한 내용은 Python SDK Reference Guide를 참고하세요. wandb artifact get 명령을 사용하여 W&B 서버에서 아티팩트를 다운로드합니다.$ wandb artifact get project/artifact:alias --root mnist/
접두사(prefix)를 기준으로 아티팩트의 일부만 선택적으로 다운로드할 수 있습니다. 단일 파일이나 하위 폴더의 내용을 다운로드하려면 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/")
아티팩트를 참조하려면 아티팩트 이름과 함께 해당 프로젝트 이름을 지정합니다. 다른 Entities의 아티팩트를 참조하려면 아티팩트 이름과 함께 Entity 이름을 지정할 수도 있습니다.
다음 코드 예제는 현재 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)
아티팩트를 구성하는 방법에 대한 자세한 내용은 아티팩트 구성하기를 참고하세요.