> 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.md).

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

## 概要

バージョンは、データセット内の画像とラベルのその時点のスナップショットです。バージョンを作成すると、データセットに前処理と拡張を適用できます。

Roboflowでモデルを学習するには、データセットバージョンを作成する必要があります。

このドキュメントのこのセクションでは、モデルを学習する準備の方法を説明します。必要なのは次のとおりです:

{% stepper %}
{% step %}
**Versionsページを開き、新しいバージョンを作成する**

ガイドに従って次の [データセットバージョンを作成できるページ](/datasets/ja/bjon/dataset-versions/create-a-dataset-version.md).
{% endstep %}

{% step %}
**前処理ステップを選択する**

次の [前処理ステップ](/datasets/ja/bjon/dataset-versions/image-preprocessing.md) を選択します。
{% endstep %}

{% step %}
**拡張を適用する**

[データセットに任意の拡張を適用します](/datasets/ja/bjon/dataset-versions/image-augmentation.md)。さまざまなユースケースに適した拡張について説明するガイドがあります。
{% endstep %}

{% step %}
**バージョンを確認する**

バージョンが作成され、モデルの学習に使用できるようになります。
{% endstep %}

{% step %}
**モデルを学習する**

次の [モデル学習のドキュメント](https://docs.roboflow.com/models) に従って、学習ジョブを設定します。

また、 [データセットバージョンをエクスポートすることもできます](/datasets/ja/bjon/dataset-versions/exporting-data.md).
{% endstep %}
{% endstepper %}

## HTTP API

### バージョンを表示する

Python SDK、REST API、CLIを使用して、Roboflowのバージョン情報を取得できます。

#### バージョンID

Roboflowで生成された各バージョンには、連番の数値IDが関連付けられています。アプリのバージョンページで確認するか、APIでプロジェクトのバージョンを一覧表示して確認できます。

すでに取得したいプロジェクトとバージョンが分かっている場合は、 `/:workspace/:project/:version` エンドポイントを使用できます。プロジェクトエンドポイントと同様の情報を返しますが、プロジェクトの他のすべてのバージョンは列挙しません。

プロジェクトの情報を取得するには、次のエンドポイントにGETリクエストを送信します:

```url
https://api.roboflow.com/roboflow/chess-sample-4ckfl/1?api_key=$ROBOFLOW_API_KEY
```

このエンドポイントは次のレスポンスを返します:

```bash
{
    "workspace": {
        "name": "Roboflow",
        "url": "roboflow",
        "members": 7
    },
    "project": {
        "id": "roboflow/chess-sample-4ckfl",
        "type": "object-detection",
        "name": "チェスサンプル",
        "created": 1630335544.592,
        "updated": 1630335741.988,
        "images": 12,
        "unannotated": 3,
        "annotation": "駒",
        "public": false,
        "splits": {
            "test": 1,
            "valid": 2,
            "train": 9
        },
        "classes": {
            "黒のナイト": 11,
            "黒のクイーン": 4,
            "黒のキング": 8,
            "白のキング": 8,
            "白のポーン": 34,
            "黒のビショップ": 8,
            "白のルーク": 10,
            "黒のポーン": 37,
            "白のナイト": 10,
            "白のビショップ": 11,
            "黒のルーク": 10,
            "白のクイーン": 7
        }
    },
    "version": {
        "id": "roboflow/chess-sample-4ckfl/1",
        "name": "拡張済み",
        "created": 1630335698.746,
        "images": 30,
        "splits": {
            "valid": 2,
            "test": 1,
            "train": 27
        },
        "model": {
            "id": "chess-sample-4ckfl/1",
            "endpoint": "https://serverless.roboflow.com/infer/chess-sample-4ckfl/1",
            "start": 1630335799.682,
            "end": 1630337523.889,
            "fromScratch": false,
            "tfjs": true,
            "oak": true,
            "map": "62.87",
            "recall": "85.29",
            "precision": "23.44"
        },
        "preprocessing": {
            "resize": {
                "height": 416,
                "width": 416,
                "format": "引き伸ばして合わせる",
                "enabled": true
            },
            "auto-orient": {
                "enabled": true
            },
            "grayscale": {
                "enabled": true
            }
        },
        "augmentation": {
            "rotate": {
                "degrees": "5",
                "enabled": true
            },
            "brightness": {
                "darken": true,
                "enabled": true,
                "brighten": true,
                "percent": "25"
            },
            "noise": {
                "percent": "2",
                "enabled": true
            },
            "crop": {
                "enabled": true,
                "min": 0,
                "percent": 30
            },
            "flip": {
                "horizontal": true,
                "vertical": false,
                "enabled": true
            },
            "image": {
                "versions": "3",
                "enabled": true
            },
            "exposure": {
                "enabled": true,
                "percent": "25"
            }
        },
        "exports": [
            "yolov5pytorch"
        ],
        "train": {
            "status": "finished",
            "results": {
                "class_map": {
                    "valid": [
                        {
                            "images": "20",
                            "map95": "0.29",
                            "precision": "0.795",
                            "recall": "0.48",
                            "map50": "0.547",
                            "class": "all",
                            "targets": "82"
                        },
                        ...
                    ],
                    "test": [
                        {
                            "images": "10",
                            "map95": "0.478",
                            "precision": "0.846",
                            "recall": "0.759",
                            "map50": "0.844",
                            "class": "all",
                            "targets": "29"
                        },
                        ...
                    ]
                }
            }
        },
        "models": {
            "roboflow-train": {
                "epochs": [
                    {
                        "mAP": "0.5624740875589795",
                        "epoch": "0",
                        "precision": "0.848007354583702",
                        "recall": "0.4796292117720689",
                        "box_loss": "0.04430354",
                        "obj_loss": "0.023823218",
                        "class_loss": "0.012277425",
                        "mAP_50_95": "0.3004394102727502"
                    },
                    {
                        "mAP": "0.5576528999996365",
                        "epoch": "1",
                        "precision": "0.8477760345230224",
                        "recall": "0.47967238365789094",
                        "box_loss": "0.041422606",
                        "obj_loss": "0.020020777",
                        "class_loss": "0.010422977",
                        "mAP_50_95": "0.2943194093111112"
                    },
                    ...
                ]
            }
        },
        "classes": [
            "黒のナイト",
            "黒のクイーン",
            "黒のキング",
            "白のキング",
            "白のポーン",
            "黒のビショップ",
            "白のルーク",
            "黒のポーン",
            "白のナイト",
            "白のビショップ",
            "黒のルーク",
            "白のクイーン"
        ]
    }
}
```

#### キーポイント検出の骨格

キーポイント検出のプロジェクトバージョンには `骨格` フィールドがあり、その中に各クラスのバージョン骨格が含まれます。たとえば、次のクラスを持つプロジェクトでは `人` 次の骨格がある場合があります:

```json
{
...
"skeletons": {
    "person": {
        "vertices": [
            {
                "color": "#FF8000",
                "id": 0,
                "name": "鼻",
                "x": 0.4546,
                "y": 0.18859999999999996
            },
            {
                "color": "#FF00FF",
                "id": 1,
                "name": "左目"
                "x": 0.478,
                "y": 0.1606
            },
            ...
        ],
        "edges": [
            {
                "color": "#00FFCE",
                "from": 13,
                "to": 15
            },
            ...
        ],
        "symmetries": [
            {
                "direction": "水平",
                "points": [1, 2]
            },
            ...
        ]
    }
}
```

注: 頂点は推論予測のclass\_idによりインデックスでアクセスしてください `class_id`. その後、vertex `ID` は、エッジ（from/to）および対称性（points）を参照するために使用できます。

## Python SDK

### バージョンを表示する

バージョン情報を取得するには、プロジェクトを取得し、必要なバージョンをリクエストします:

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")

# プロジェクトを取得
project = rf.workspace().project("PROJECT_ID")

model = project.version("1").model
```

その `model` 変数には次のJSON値が含まれます:

```json
{
  "id": "mug-detector-eocwp/12",
  "name": "マグ検出器",
  "version": "12",
  "classes": null,
  "overlap": 30,
  "confidence": 40,
  "stroke": 1,
  "labels": false,
  "format": "json",
  "base_url": "https://serverless.roboflow.com/infer/"
}
```

バージョンの一覧表示と反復処理については、 [ワークスペースとプロジェクトを一覧表示する](https://docs.roboflow.com/platform/workspaces/list-workspaces-and-projects#list-projects-and-versions)。バージョンのエクスポートについては、 [データセットバージョンをエクスポートする](/datasets/ja/bjon/dataset-versions/exporting-data.md#python-sdk).

## CLI

コマンドラインからデータセットバージョンを一覧表示、確認、エクスポートできます。

### バージョンを一覧表示

```bash
roboflow version list -p <project>
```

例:

```bash
roboflow version list -p my-detector
```

```
ID                              名前              画像数  作成日
my-workspace/my-detector/1      生データ               100     2024-01-15
my-workspace/my-detector/2      拡張済み-640     300     2024-01-20
my-workspace/my-detector/3      拡張済み-416     250     2024-02-01
```

### バージョンの詳細を取得

```bash
roboflow version get -p <project> <version-number>
```

またはリソースの省略形を使用します:

```bash
roboflow version get my-detector/3
roboflow version get my-workspace/my-detector/3
```

### バージョンをエクスポート

特定の形式でバージョンの非同期エクスポートを開始します:

```bash
roboflow version export -p <project> <version-number> -f <format>
```

例:

```bash
roboflow version export -p my-detector 3 -f yolov8
```

### JSON出力

すべてのバージョンコマンドは `--json`:

```bash
roboflow version list -p my-detector --json
```

```json
[
  {
    "id": "my-workspace/my-detector/1",
    "name": "生データ",
    "images": 100,
    "created": "2024-01-15T00:00:00"
  }
]
```

## 次のステップ

* このバージョンを使用してモデルを学習します。参照: [モデルを学習する](https://docs.roboflow.com/models).
* 学習に使用できる形式でバージョンをエクスポートします。参照: [データセットバージョンをエクスポートする](/datasets/ja/bjon/dataset-versions/exporting-data.md).
