アーティファクトの作成とログ記録
不正なコードを報告
コピー
AIに質問
"""
W&B アーティファクトを作成してログに記録します。まずアーティファクト
オブジェクトを作成します。次に、ファイル、ディレクトリ、または外部参照をアーティファクトに追加します。
最後に、アーティファクトを W&B の run にログとして記録します。
"""
import wandb
# アーティファクトオブジェクトを作成する
artifact = wandb.Artifact(name="<artifact_name>", type="<artifact_type>")
# アーティファクトに1つ以上のファイルを追加する
artifact.add_file(local_path="data/file1.csv")
# アーティファクトにディレクトリを再帰的に追加する
artifact.add_dir(local_path="data/directory")
# アーティファクトに外部URI参照を追加する
artifact.add_reference(uri="s3://my-bucket/path/to/data.csv")
with wandb.init(project="<project>") as run:
# 学習およびログ記録のコードをここに記述する
# アーティファクトをログに記録する例
run.log_artifact(artifact)
クラウドストレージバケットパスへの参照を追加して外部アーティファクトを追跡する
不正なコードを報告
コピー
AIに質問
"""
クラウドストレージバケットパスへの参照を追加することで、外部アーティファクトを追跡します。
"""
import wandb
# アーティファクトオブジェクトを作成する
artifact = wandb.Artifact(name="<artifact_name>", type="<artifact_type>")
# バケットパスへの参照を追加する
artifact.add_reference(uri = "uri/to/your/bucket/path")
# W&B の run を初期化する
with wandb.init(project="<project>") as run:
# アーティファクトのメタデータをログに記録する
run.log_artifact(artifact)
run から特定のアーティファクトのバージョンを削除する
不正なコードを報告
コピー
AIに質問
"""
W&B の run から特定のアーティファクトバージョンを削除します。アーティファクトにエイリアスが付いている場合は、delete_aliases を `True` に設定してください。
"""
import wandb
# W&B API を初期化する
api = wandb.Api()
# パスで run を取得する。<entity>/<project>/<run_path> の形式で指定する
runs = api.run("<entity>/<project>/<run_path>")
# wandb.Api().Run.logged_artifacts() はアーティファクト名とバージョン <artifact_name>:v<version_number> で構成される
# アーティファクトバージョンのリストを返す
for artifact_version in runs.logged_artifacts():
# アーティファクトバージョン名 (str) の末尾2文字(バージョン番号)を取得する
if artifact_version.name[-2:] == "v"+ "<version_number>":
artifact_version.delete(delete_aliases=True)
アーティファクトコレクションを削除する
不正なコードを報告
コピー
AIに質問
"""
W&B からアーティファクトコレクションを削除する。
"""
import wandb
# W&B API を初期化する
api = wandb.Api()
# 名前とタイプでアーティファクトコレクションを削除する
# 名前の形式: <entity>/<project>/<run_path>
collection = api.artifact_collection(
name="<entity>/<project>/<run_path>",
type_name="<artifact_type>"
)
collection.delete()
アーティファクト内の特定のファイルやサブフォルダをダウンロードする
不正なコードを報告
コピー
AIに質問
"""
W&B アーティファクトから特定のファイルまたはサブフォルダをダウンロードします。
同じロジックが外部アーティファクトにも適用されます。
"""
import wandb
with wandb.init(project="<project>") as run:
# 使用するアーティファクトを指定します。形式は "name:alias"
artifact = run.use_artifact("<artifact_name>:<alias>")
# 特定のファイルまたはサブフォルダをダウンロードする
artifact.download(path_prefix="<file_name>") # 指定したファイルまたはフォルダのみをダウンロードする
ファイルまたはアーティファクト全体のダウンロード
不正なコードを報告
コピー
AIに質問
"""
W&B からファイルまたはアーティファクト全体をダウンロードします。同じ
ロジックが外部アーティファクトにも適用されます。
"""
import wandb
with wandb.init(project="<project>") as run:
# 使用するアーティファクトを指定します。形式は "name:alias"
artifact = run.use_artifact("<artifact_name>:<alias>")
# パス名でアーティファクトからファイルをダウンロードします
# artifact.add_reference() が使用された場合、参照 URL を返します
entry = artifact.get_entry("<file_name>")
# アーティファクト全体をダウンロードします
datadir = artifact.download()
アーティファクトをログに記録するときに 1 つ以上のエイリアスを追加する
不正なコードを報告
コピー
AIに質問
"""
W&B にログする際に、アーティファクトに1つ以上のエイリアスを追加する。
"""
import wandb
# アーティファクトを作成する
artifact = wandb.Artifact(name="<artifact_name>", type="<artifact_type>")
# アーティファクトにファイルを追加する
artifact.add_file("<file_path>")
with wandb.init(project="<project>") as run:
# エイリアスを付けてアーティファクトをログする
run.log_artifact(artifact, aliases=["<alias1>", "<alias2>"])
既存のアーティファクトにエイリアスを追加する
不正なコードを報告
コピー
AIに質問
"""
既存のW&Bアーティファクトにエイリアスを追加します。
"""
import wandb
# 既存のアーティファクトを取得してエイリアスを追加する
artifact = wandb.Api().artifact("entity/project/artifact:version")
artifact.aliases = ["<new-alias>"]
artifact.save()
アーティファクトをログに記録する際にタグを追加する
不正なコードを報告
コピー
AIに質問
"""
W&B にログする際にアーティファクトにタグを追加する。
"""
import wandb
# アーティファクトを作成する
artifact = wandb.Artifact(name="<artifact_name>", type="<artifact_type>")
# タグ付きでアーティファクトをログする
with wandb.init(project="<project>") as run:
run.log_artifact(artifact, tags=["<tag1>", "<tag2>"])
既存のアーティファクトにタグを追加
不正なコードを報告
コピー
AIに質問
"""
既存のW&BアーティファクトにタグをW&Bアーティファクトに追加します。
"""
import wandb
# 既存のアーティファクトを取得してタグを追加する
artifact = wandb.Api().artifact("entity/project/artifact:version")
artifact.tags = ["new-tag"]
artifact.save()
TTL ポリシー付きアーティファクトを作成してログに記録する
不正なコードを報告
コピー
AIに質問
"""
W&B でTTLポリシーを設定したアーティファクトを作成してログに記録する。
"""
import wandb
from datetime import timedelta
# TTLポリシーを設定したアーティファクトを作成する
artifact = wandb.Artifact(name="<artifact_name>", type="<artifact_type>")
artifact.add_file("<file_path>")
artifact.ttl = timedelta(days=30) # TTLポリシーを設定する
with wandb.init(project="<project>", entity="<entity>") as run:
# TTLを設定したアーティファクトをログに記録する
run.log_artifact(artifact)
既存アーティファクトの TTL ポリシーを更新する
不正なコードを報告
コピー
AIに質問
"""
W&B の既存のアーティファクトの TTL ポリシーを更新する。
"""
import wandb
from datetime import timedelta
# W&B API を初期化する
api = wandb.Api()
# 既存のアーティファクトを取得する
artifact = api.artifact("<entity/project/artifact:alias>")
# TTL ポリシーを追加または更新する。希望する期間を指定する。
artifact.ttl = timedelta(days=365) # 1年後に削除する
# 更新したアーティファクトを保存する
artifact.save()
run 内で既存のアーティファクトの説明を更新する
不正なコードを報告
コピー
AIに質問
"""
W&B run 内で既存の W&B アーティファクトの説明を更新します。
このコードは W&B run を初期化し、名前とエイリアスで指定されたアーティファクトを取得して、
説明を更新し、変更を保存します。
"""
import wandb
with wandb.init(entity="<entity>", project="<project>") as run:
# 名前とエイリアスでアーティファクトを取得する
artifact = run.use_artifact(artifact_or_name="<artifact>:<alias>")
# アーティファクトの説明を更新する
artifact.description = "<description>"
# 更新したアーティファクトを保存する
artifact.save()
既存のアーティファクトの説明、メタデータ、エイリアスを、新しい run を作成せずに更新する
不正なコードを報告
コピー
AIに質問
"""
既存のアーティファクトについて、新しい run を作成せずに説明、メタデータ、エイリアスを更新する。
"""
import wandb
api = wandb.Api()
artifact = api.artifact(name="<entity/project/artifact:alias>")
# 説明を更新する
artifact.description = "My new description"
# メタデータのキーを選択的に更新する
artifact.metadata["oldKey"] = "new value"
# メタデータをすべて置き換える
artifact.metadata = {"newKey": "new value"}
# エイリアスを追加する
artifact.aliases.append("best")
# エイリアスを削除する
artifact.aliases.remove("latest")
# エイリアスをすべて置き換える
artifact.aliases = ["replaced"]
# アーティファクトへのすべての変更を保存する
artifact.save()