> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/models/ja/moderunomi/upload-custom-weights.md).

# カスタムモデルの重みをアップロード

## Roboflow外で学習した重みのアップロード

カスタムモデルの学習が完了したら、モデルの重みをRoboflowプロジェクトにアップロードして、次の利点を活用してください [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

Roboflowでモデルを学習するには、 [モデルを学習する](/models/ja/xue-xi/train-a-model.md).

### モデルのサポート

次を参照してください： [対応モデル表](/models/ja/supported-models.md) 重みアップロードの互換性の詳細。

{% hint style="warning" %}

* YOLOv8モデルは次で学習する必要があります： `ultralytics==8.0.196`
* YOLOv9モデルは次を使用して学習およびアップロードする必要があります： `ultralytics` ごとに <https://github.com/WongKinYiu/yolov9>
* YOLOv10モデルは次を使用して学習およびアップロードする必要があります： `ultralytics` ごとに

  <https://github.com/THU-MIG/yolov10>
* YOLOv11モデルは次で学習する必要があります： `ultralytics<=8.3.40`
* YOLOv12モデルは次を使用して学習およびアップロードする必要があります： `ultralytics` ごとに <https://github.com/sunsmarterjie/yolov12>
  {% endhint %}

{% hint style="info" %}
モデルサイズが大きいほど、学習結果は向上します。ただし、モデルサイズが大きいほど、学習時間は長くなり、推論（モデル予測）速度は遅くなります。動きの速い物体や動画フィードに対するリアルタイム推論を求めているのか（小さいモデルの方が適しています）、あるいは収集後のデータを処理し、予測精度の高さをより重視しているのか（大きいモデルを選択してください）を検討してください。
{% endhint %}

### バージョン付きモデルとバージョンなしモデルのアップロード

Roboflowでは、プロジェクトにモデルをデプロイするための2つの異なる方法を提供しており、それぞれが異なるユースケースと組織のニーズに対応します。バージョン付きデプロイとバージョンなしデプロイのどちらを選ぶかは、データセットのバージョンと合わせてモデルの変遷を追跡する必要があるか、ワークスペース内の複数プロジェクト間でモデルを共有したいかによって決まります。

* **バージョンなしのデプロイ**
  * ワークスペースレベルに紐づく
  * 複数のプロジェクトへ同時にデプロイできます
  * 同じワークスペース内の異なるプロジェクト間でモデルを共有するのに最適です
* **バージョン付きのデプロイ**
  * 特定のプロジェクトバージョンに紐づく
  * 1つの [バージョン](/models/ja/versions-trainings-and-models.md) には複数のアップロード済みモデルを持つことができます
  * データセットのバージョンとともにモデルの変遷を追跡するのに最適です
  * Label Assistでモデルを使用するのに最適です
  * 他のモデルを学習するためのチェックポイントとしてモデルを使用するのに最適です

## Python SDK

まず、最新の `roboflow` Pythonパッケージがインストールされていることを確認してください：

```bash
pip install --update roboflow
```

### バージョンなしモデル

バージョンなしのカスタム重みをアップロードするには、次を使用します： `workspace.deploy_model()` メソッド：

```python
workspace.deploy_model(
    model_type="yolov8",  # モデルの種類
    model_path="path/to/model",  # モデルディレクトリへのパス
    project_ids=["project1", "project2"],  # プロジェクトIDの一覧
    model_name="my-model",  # モデル名（少なくとも1文字の英字を含む必要があり、数字とダッシュを使用できます）
    filename="weights/best.pt"  # 重みファイルへのパス（デフォルト）
)
```

**パラメータ**

| パラメータ         | 型          | 必須  | 説明                                             |
| ------------- | ---------- | --- | ---------------------------------------------- |
| `model_type`  | str        | はい  | デプロイするモデルの種類。例： `yolov8`, `yolov11`.           |
| `model_path`  | str        | はい  | モデルの重みを含むディレクトリへのパス。                           |
| `project_ids` | list\[str] | はい  | モデルをデプロイするプロジェクトID。                            |
| `model_name`  | str        | はい  | モデルを識別する名前。少なくとも1文字の英字を含む必要があり、数字とダッシュを使用できます。 |
| `filename`    | str        | いいえ | 重みファイル名。デフォルト： `weights/best.pt`.              |

**例**

```python
from roboflow import Roboflow

rf = Roboflow(api_key="YOUR_API_KEY")
workspace = rf.workspace("YOUR_WORKSPACE")

workspace.deploy_model(
  model_type="yolov8",
  model_path="./runs/train/weights",
  project_ids=["project-1", "project-2", "project-3"],
  model_name="my-custom-model"
)
```

### バージョン付きモデル

{% hint style="info" %}
バージョン付きのカスタム重みアップロードでは、各アップロード済みモデルがデータセットのバージョンに紐づけられます。データセットに生成済みのバージョンがない場合は、次の方法で作成できます [アプリ内で](https://docs.roboflow.com/datasets/versions/dataset-versions/create-a-dataset-version) または次を介して [API](https://docs.roboflow.com/datasets/versions/dataset-versions/create-a-dataset-version#python-sdk).

以下のドキュメントを参照してください： [API経由でバージョンを読み込む方法](https://docs.roboflow.com/datasets/versions/dataset-versions#view-a-version) または以下の例を参照してください。
{% endhint %}

カスタム重みをアップロードするには、次を使用します： `version.deploy()` Python SDKのメソッド。

**使用方法**

```python
version.deploy(
    model_type="yolov8",  # モデルの種類
    model_path="path/to/model",  # モデルディレクトリへのパス
    filename="weights/best.pt"  # 重みファイルへのパス（デフォルト）
)
```

**パラメータ**

| パラメータ        | 型   | 必須  | 説明                                   |
| ------------ | --- | --- | ------------------------------------ |
| `model_type` | str | はい  | デプロイするモデルの種類。例： `yolov8`, `yolov11`. |
| `model_path` | str | はい  | モデルの重みを含むディレクトリへのパス。                 |
| `filename`   | str | いいえ | 重みファイル名。デフォルト： `weights/best.pt`.    |

**例**

```python
from roboflow import Roboflow

rf = Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace().project("PROJECT_ID")

# weights_filename を指定できます。デフォルトは "weights/best.pt" です
version = project.version(VERSION_ID)

# 例1 - YOLOv8モデルでは、ディレクトリパスは "training1/model1.pt" です
version.deploy("yolov8", "training1", "model1.pt")

# 例2 - YOLOv8モデルでは、ディレクトリパスは "training1/weights/best.pt" です
version.deploy("yolov8", "training1")
```

**重要な注意事項**

{% hint style="info" %}
1つのバージョンに複数のアップロード済みモデルを含めることができます。 [バージョン、トレーニング、モデル](/models/ja/versions-trainings-and-models.md) バージョン上のモデルがどのように参照されるかについては、次を参照してください。
{% endhint %}

## CLI

**認証**

CLIコマンドを使用する前に、Roboflowで認証する必要があります：

1. 認証コマンドを実行してください： `roboflow login`
2. ターミナルに表示されたURLにアクセスしてください： <https://app.roboflow.com/auth-cli>
3. Webサイトで認証トークンを取得してください
4. トークンをターミナルに貼り付けてください

認証情報は自動的に次に保存されます： `~/.config/roboflow/config.json`

**モデル重みのアップロード**

Roboflow CLIには、学習済みモデルの重みをRoboflowプロジェクトにアップロードするコマンドがあります。これは、カスタム学習したモデルをRoboflowにデプロイしたい場合に便利です。

**基本的な使い方**

{% code overflow="wrap" %}

```bash
roboflow upload_model -w <workspace> -p <project> -t <model_type> -m <model_path> [-v <version>] [-f <filename>] [-n <model_name>]
```

{% endcode %}

**パラメータ**

| フラグ                    | 必須   | 説明                                                                |
| ---------------------- | ---- | ----------------------------------------------------------------- |
| `-w, --workspace`      | いいえ  | ワークスペースIDまたはURL。デフォルトは既定のワークスペースです。                               |
| `-p, --project`        | はい   | アップロード先のプロジェクトID。バージョンなしモデルを複数のプロジェクトにアップロードするには、このフラグを繰り返してください。 |
| `-t, --model_type`     | はい   | モデルの種類。例： `yolov8`, `paligemma2`, `rfdetr-medium`.                |
| `-m, --model_path`     | はい   | 学習済みモデルファイルを含むディレクトリへのパス。                                         |
| `-v, --version_number` | いいえ  | モデルを関連付けるデータセットのバージョン。                                            |
| `-f, --filename`       | いいえ  | モデルファイル名。デフォルト： `weights/best.pt`.                                |
| `-n, --model_name`     | 条件付き | モデル名。バージョンなしモデルのデプロイには必須です。                                       |

**例**

<pre class="language-bash" data-overflow="wrap"><code class="lang-bash"># 1. 特定のバージョンにモデルをアップロードする： 
<strong>roboflow upload_model -w my-workspace -p my-project -v 1 -t yolov8 -m ./weights
</strong>
# 2. バージョンなしモデルを複数のプロジェクトにアップロードする：
roboflow upload_model -w my-workspace -p project1 -p project2 -t yolov11 -n my-model-v1 -m ./weights
# 3. バージョンなしのRF-DETR mediumモデルを単一プロジェクトにアップロードする： 
roboflow upload_model -w my-workspace -p my-project -t rfdetr-medium -n my-model-name -m ./ -f weights.pt
</code></pre>

## 次のステップ

1. Roboflowの「Models」タブでモデルを確認してください
2. 次を使ってローカルでモデルを実行します： [Roboflow Inference Server](https://docs.roboflow.com/deployment/self-hosted/self-hosted).
3. 次を確認してください： [デプロイオプション](https://docs.roboflow.com/deployment).
