> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-1917.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 複数のProjectsからアーティファクトをダウンロードして使用します。

# アーティファクトをダウンロードして使用する

すでに W\&B Server に保存されているアーティファクトをダウンロードして使用するか、アーティファクトオブジェクトを作成して渡し、必要に応じて重複排除を行います。

<Note>
  View-Only シートが割り当てられているチームメンバーは、アーティファクトをダウンロードできません。
</Note>

<div id="download-and-use-an-artifact-stored-on-wb">
  ### W\&B に保存されているアーティファクトをダウンロードして使用する
</div>

W\&B に保存されているアーティファクトは、W\&B Run の内外を問わずダウンロードして使用できます。W\&B にすでに保存されている内容をエクスポートしたり、データを更新したりするには、Public API ([`wandb.Api`](/ja/models/ref/python/public-api/api)) を使用します。

<Tabs>
  <Tab title="During a run">
    まず、W\&B Python SDK を import します。次に、W\&B [Run](/ja/models/ref/python/experiments/run) を作成します。

    ```python theme={null}
    import wandb

    with wandb.init(project="<example>", job_type="<job-type>") as run:
        # 次のステップを参照
    ```

    [`wandb.Run.use_artifact()`](/ja/models/ref/python/experiments/run#use_artifact) メソッドを使用して、使用するアーティファクトを指定します。このメソッドは run object を返します。次の code snippet では、`'bike-dataset'` というアーティファクトに `'latest'` という alias を指定しています。

    ```python theme={null}
    # 使用する artifact を指定します。形式は "name:alias" です
    artifact = run.use_artifact("bike-dataset:latest")
    ```

    返された object を使用して、アーティファクトの内容全体をダウンロードします。

    ```python theme={null}
    # artifact 全体をダウンロード
    datadir = artifact.download()
    ```

    必要に応じて、root パラメーターにパスを渡すことで、アーティファクトの内容を特定のディレクトリにダウンロードできます。

    [`wandb.Artifact.get_entry()`](/ja/models/ref/python/experiments/artifact#get_entry) メソッドを使用すると、ファイルの一部だけをダウンロードできます。

    ```python theme={null}
    # 特定のファイルをダウンロード
    entry = artifact.get_entry(name)
    ```

    以上をまとめると、完全なコード例は次のようになります。

    ```python theme={null}
    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` object には、次のメソッドがあります。

    * `Entry.download`: パス `name` にあるアーティファクトからファイルをダウンロードします
    * `Entry.ref`: `add_reference` によってエントリが参照として保存されている場合、URI を返します
  </Tab>

  <Tab title="Outside of a run">
    まず、W\&B SDK を import します。次に、Public API Class からアーティファクト object を作成します。そのアーティファクトに関連付けられている entity、project、アーティファクト、alias を指定します。

    ```python theme={null}
    import wandb

    api = wandb.Api()
    artifact = api.artifact("entity/project/artifact:alias")
    ```

    返された object を使用して、アーティファクトの内容をダウンロードします。

    ```python theme={null}
    artifact.download()
    ```

    必要に応じて、`root` パラメーターにパスを渡すことで、アーティファクトの内容を特定のディレクトリにダウンロードできます。詳細は、[Python SDK Reference Guide](/ja/models/ref/python/experiments/artifact#download) を参照してください。
  </Tab>

  <Tab title="W&B CLI">
    W\&B Server からアーティファクトをダウンロードするには、`wandb artifact get` コマンドを使用します。

    ```
    $ wandb artifact get project/artifact:alias --root mnist/
    ```
  </Tab>
</Tabs>

<div id="partially-download-an-artifact">
  ### アーティファクト を部分的にダウンロードする
</div>

必要に応じて、プレフィックスに基づいてアーティファクト の一部をダウンロードできます。単一ファイルまたはサブフォルダーの内容をダウンロードするには、`path_prefix=` (`wandb.Artifact.download(path_prefix=)`) パラメーターを使用します。

```python theme={null}
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=` パラメーターでディレクトリを指定します。前のコードスニペットに続けて、次のようにします。

```python theme={null}
# images/bikes ディレクトリ内のファイルをダウンロードする
artifact.download(path_prefix="images/bikes/") 
```

<div id="use-an-artifact-from-a-different-project">
  ### 別の project のアーティファクトを使用する
</div>

アーティファクトを参照するには、アーティファクトの名とその project 名を指定します。entity 名を指定すると、Entities をまたいでアーティファクトを参照することもできます。

次のコード例は、現在の W\&B run への入力として、別の project のアーティファクトをクエリする方法を示しています。

```python theme={null}
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")

```

<div id="construct-and-use-an-artifact-simultaneously">
  ### アーティファクト を同時に作成して使用する
</div>

アーティファクト を同時に作成して使用できます。アーティファクト オブジェクトを作成し、それを use\_artifact に渡します。これにより、まだ存在していない場合は W\&B にアーティファクト が作成されます。[`wandb.Run.use_artifact()`](/ja/models/ref/python/experiments/run#use_artifact) API は冪等であるため、必要なだけ何度でも呼び出せます。

```python theme={null}
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)
```

アーティファクトの作成について詳しくは、[アーティファクトを作成する](/ja/models/artifacts/construct-an-artifact/)を参照してください。
