> 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/datasets/ja/bjon/dataset-versions/create-a-dataset-version.md).

# データセットのバージョンを作成

## 概要

バージョンは、データセットのある時点のスナップショットです。各バージョンを保持するのは、モデルの各反復でどの画像、前処理、拡張ステップが使われたかを正確に追跡することで、結果を再現できる状態を維持できるからです。これにより、さまざまなモデルやフレームワークをまたいで科学的にテストしつつ、結果がモデルの変更によるものであり、データパイプラインのバグや変更によるものではないと確信できます。

<a href="https://docs.roboflow.com/platform/workspaces/key-concepts" class="button primary">重要な概念: ワークスペースとプロジェクトとは？</a>

{% hint style="info" %}
一度バージョンが作成されると、その時点で固定されます。つまり、画像やアノテーション、その他のデータの追加・削除など、プロジェクトへの変更はそれ以前に作成されたバージョンには影響しません。
{% endhint %}

## Webアプリ

### データセットのバージョンを作成する方法

データセットのバージョンを作成するには、Roboflowプロジェクトに関連するサイドバーの「Versions」をクリックします。次に、「Generate New Version」をクリックします。

このページでは、学習/検証/テスト分割を設定し、新しいデータセットバージョンの前処理ステップと拡張を指定できます。

<figure><img src="/files/c331a6af269d9a8f5c703cc8eacdb779256bed09" alt="" width="375"><figcaption></figcaption></figure>

適用する前処理ステップと拡張を指定したら、「Generate」をクリックします。これにより新しいデータセットバージョンが生成されます。その後、このデータセットバージョンをRoboflowでモデルの学習に使用できます。また、 [データセットをエクスポートし](/datasets/ja/bjon/dataset-versions/exporting-data.md) 、手動でモデルを学習するために使用できます。

### 学習/検証/テスト分割の再調整

バージョン作成の過程では、学習、検証、テストセットの分割バランスも再調整できます。これを行うには、「Step 2: Train/Test Split」に移動して「Rebalance」ボタンをクリックします。

<figure><img src="/files/ceef858cf0bbcfef3687620db6d528ea3d38fefc" alt="" width="375"><figcaption></figcaption></figure>

推奨の分割は70/20/10（train/valid/test）で、ほとんどのデータセットにとって優れた出発点です。いつでも「Reset」をクリックして元に戻せます。

学習、検証、テストの割合を設定し、次に画像の再割り当て方法を選択します：

* 「Move as few as possible」は、画像を現在の分割にできるだけ残し、目標割合に達するために必要な分だけ移動します。
* 「Random shuffle」は、すべての画像を分割間でランダムに再割り当てします。
* 「Random shuffle per upload batch or annotation job」は、各アップロードバッチまたは完了したアノテーションジョブごとに個別にシャッフルするため、すべてのバッチとジョブが対象割合に一致します。

再バランスの対象を特定のクラスに絞ることもできます。クラスを選択すると、そのクラスのみを含む画像に移動が限定され、方法は「Move as few as possible」に切り替わります。

大規模なデータセットでは、再バランスはフェーズごとの進捗付きでバックグラウンドタスクとして実行されます。処理中にダイアログを閉じても問題なく、Activity Centerで追跡できます。

## HTTP API

### 学習/検証/テスト分割の再バランス

次のPOSTリクエストを送信して、プロジェクトの分割を再バランスします： `/:workspace/:project/splits/rebalance` このエンドポイントです。これによりプロジェクト自体の分割が変更されるため、次に生成するバージョンでは新しいバランスが使用されます。

再バランスは常にバックグラウンドタスクとして実行されます。リクエストは `202 Accepted` タスクIDとポーリングURLを返します。返された `URL`、または次を呼び出します `GET /:workspace/asynctasks/:id` を使用して `taskId`、タスクが完了するまでポーリングします。

呼び出し元のAPIキーには `project:update` スコープと、ワークスペース内で分割を編集する権限が必要です。

**リクエスト例**

```bash
$ curl --location "https://api.roboflow.com/my-workspace/my-project/splits/rebalance?api_key=$ROBOFLOW_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "splits": { "train": 70, "valid": 20, "test": 10 }
}'
```

**パラメータ**

```
- splits (object) - 必須。学習、検証、テストの対象値。各値は0以上の整数である必要があります。値は相対値なので、70/20/10 は70%/20%/10%を意味します。少なくとも1つは0より大きくなければなりません。
- mode (string) - "rebalance"（既定）は、移動する画像数をできるだけ少なくします。"shuffle" はすべての画像をランダムに再割り当てします。
- grouping (string) - "shuffle"モードでのみ使用されます。"global"（既定）はプロジェクト全体をシャッフルします。"batch" は各アップロードバッチと完了したアノテーションジョブを個別にシャッフルします。
- classes (array of strings) - 再バランスをこれらのクラスのみを含む画像に限定します。他のクラスを含む画像は現在の分割のまま残ります。
```

**レスポンス例**

```json
{
    "taskId": "abc123",
    "url": "https://api.roboflow.com/my-workspace/asynctasks/abc123"
}
```

## Python SDK

バージョンは、選択した前処理と拡張のセットを適用したプロジェクトのラベル付きデータのスナップショットを固定します。プロジェクトに直接対してではなく、バージョンに対して学習してください。

`Project.generate_version()` は新しいバージョン番号を返します。これを `project.version(...)` に渡すと `Version` ハンドルを取得できます。

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace().project("my-detector")

new_version = project.generate_version(settings={
    "preprocessing": {
        "auto-orient": True,
        "resize": {"width": 640, "height": 640, "format": "Stretch to"},
    },
    "augmentation": {},
})
version = project.version(new_version)
```

`augmentation.image.versions` はバージョンサイズの最大倍率です。これはプランで上限が定められており、それより高く設定すると生成は失敗します。参照： [拡張の制限](/datasets/ja/bjon/dataset-versions/image-augmentation.md#limiting-augmentations).

こちらは設定の完全な例です。各プロパティの詳細な説明を以下に示します。

```json
{
    "versionName": "Raccoons",
    "augmentation": {
        "bbblur": { "pixels": 1.5 },
        "bbbrightness": { "brighten": true, "darken": false, "percent": 91 },
        "bbcrop": { "min": 12, "max": 71 },
        "bbexposure": { "percent": 30 },
        "bbflip": { "horizontal": true, "vertical": false },
        "bbnoise": { "percent": 50 },
        "bbninety": { "clockwise": true, "counter-clockwise": false, "upside-down": false },
        "bbrotate": { "degrees": 45 },
        "bbshear": { "horizontal": 45, "vertical": 45 },
        "blur": { "pixels": 1.5 },
        "brightness": { "brighten": true, "darken": false, "percent": 91 },
        "crop": { "min": 12, "max": 71 },
        "cutout": { "count": 26, "percent": 71 },
        "exposure": { "percent": 30 },
        "flip": { "horizontal": true, "vertical": false },
        "hue": { "degrees": 180 },
        "image": { "versions": 32 },
        "mosaic": true,
        "ninety": { "clockwise": true, "counter-clockwise": false, "upside-down": false },
        "noise": { "percent": 50 },
        "rgrayscale": { "percent": 50 },
        "rotate": { "degrees": 45 },
        "saturation": { "percent": 50 },
        "shear": { "horizontal": 45, "vertical": 45 }
    },
    "preprocessing": {
        "auto-orient": true,
        "contrast": { "type": "Contrast Stretching" },
        "filter-null": { "percent": 50 },
        "filter-tags": { "tag_name": true, "other_tag": false },
        "grayscale": true,
        "isolate": true,
        "remap": { "original_class_name": "new_class_name" },
        "resize": { "width": 200, "height": 200, "format": "Stretch to" },
        "static-crop": { "x_min": 10, "x_max": 90, "y_min": 10, "y_max": 90 },
        "tile": { "rows": 2, "columns": 2 }
    }
}
```

`tile` また、固定タイルモードも受け付けます： `{"mode": "fixed_size", "tileWidth": 640, "tileHeight": 640, "overlap": 5, "padding": "black"}` または `{"mode": "fixed_aspect", "aspectRatio": 1, "span": "width", "overlap": 5, "padding": "black"}`。詳細は [Tile](/datasets/ja/bjon/dataset-versions/image-preprocessing.md#tile).

## MCPサーバー

AIエージェントを [MCPサーバー](https://docs.roboflow.com/agents/mcp-server) また、次のツールを使ってデータセットのバージョンを生成できます：

<table data-search="false"><thead><tr><th width="290">ツール</th><th>説明</th></tr></thead><tbody><tr><td><code>versions_generate</code></td><td>前処理と拡張を任意で指定してバージョンを作成します。</td></tr><tr><td><code>versions_get</code></td><td>分割と学習情報を含むバージョン情報を取得します。</td></tr><tr><td><code>datasets_rebalance_splits</code></td><td>学習、検証、テスト分割の非同期再バランスをキューに入れます。</td></tr><tr><td><code>async_tasks_get</code></td><td>再バランスタスクが完了するまでポーリングします。</td></tr></tbody></table>
