이미 W&B Server에 저장된 아티팩트를 다운로드해 사용할 수 있으며, 필요에 따라 중복 제거를 위해 아티팩트 객체를 생성해 전달할 수도 있습니다.
View-Only 시트의 팀 구성원은 아티팩트를 다운로드할 수 없습니다.
W&B Run 내부 또는 외부에서 W&B에 저장된 아티팩트를 다운로드해 사용할 수 있습니다. Public API(wandb.Api)를 사용하면 W&B에 이미 저장된 내용을 내보내거나 데이터를 업데이트할 수 있습니다.
run 중
Outside of a run
W&B CLI
먼저 W&B Python SDK를 임포트합니다. 다음으로 W&B Run을 생성합니다:import wandb
with wandb.init(project="<example>", job_type="<job-type>") as run:
# 다음 step 참조
wandb.Run.use_artifact() 메서드로 사용할 아티팩트를 지정합니다. 이 메서드는 run 객체를 반환합니다. 다음 코드 스니펫에서는 'latest' alias가 붙은 'bike-dataset' 아티팩트를 지정합니다:# 사용할 artifact를 지정합니다. 형식은 "name:alias"입니다
artifact = run.use_artifact("bike-dataset:latest")
반환된 객체를 사용해 아티팩트의 전체 내용을 다운로드합니다:# 전체 artifact 다운로드
datadir = artifact.download()
선택적으로 root parameter에 경로를 전달해 아티팩트의 내용을 특정 디렉터리로 다운로드할 수 있습니다.wandb.Artifact.get_entry() 메서드를 사용하면 파일의 일부만 다운로드할 수 있습니다:# 특정 파일 다운로드
entry = artifact.get_entry(name)
이를 모두 합치면 전체 코드 예제는 다음과 같습니다:import wandb
with wandb.init(project="<example>", job_type="<job-type>") as run:
# 사용할 artifact를 지정합니다. 형식은 "name:alias"입니다
artifact = run.use_artifact("bike-dataset:latest")
# 전체 artifact 다운로드
datadir = artifact.download()
# 특정 파일 다운로드
entry = artifact.get_entry("bike.png")
이렇게 하면 경로 name에 있는 파일만 가져옵니다. 다음 메서드가 있는 Entry 객체를 반환합니다:
Entry.download: 아티팩트의 경로 name에 있는 파일을 다운로드합니다
Entry.ref: add_reference가 항목을 reference로 저장한 경우 URI를 반환합니다
먼저 W&B SDK를 임포트합니다. 다음으로 Public API 클래스에서 아티팩트 객체를 생성합니다. 해당 아티팩트와 연결된 entity, 프로젝트, artifact, alias를 지정합니다:import wandb
api = wandb.Api()
artifact = api.artifact("entity/project/artifact:alias")
반환된 객체를 사용해 아티팩트의 내용을 다운로드합니다:선택적으로 root parameter에 경로를 전달해 아티팩트의 내용을 특정 디렉터리로 다운로드할 수 있습니다. 자세한 내용은 Python SDK 레퍼런스 가이드를 참조하세요. wandb artifact get command를 사용해 W&B Server에서 아티팩트를 다운로드합니다.$ wandb artifact get project/artifact:alias --root mnist/
접두사를 기준으로 아티팩트의 일부만 선택해 다운로드할 수 있습니다. path_prefix= (wandb.Artifact.download(path_prefix=)) 매개변수를 사용해 단일 파일 또는 하위 폴더의 내용을 다운로드하세요.
with wandb.init(project="<example>", job_type="<job-type>") as run:
# 사용할 artifact를 지정합니다. 형식: "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 이름과 함께 아티팩트 이름을 지정하면 entity 간에도 아티팩트를 참조할 수 있습니다.
다음 코드 예제는 현재 W&B run의 입력으로 다른 프로젝트의 아티팩트를 쿼리하는 방법을 보여줍니다.
with wandb.init(project="<example>", job_type="<job-type>") as run:
# 다른 프로젝트의 artifact를 W&B에서 쿼리하고 이 run의
# 입력으로 표시합니다.
artifact = run.use_artifact("my-project/artifact:alias")
# 다른 entity의 artifact를 사용하고 이 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)
아티팩트를 생성하는 방법에 대한 자세한 내용은 아티팩트 생성하기를 참조하세요.