> 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/roboflow/roboflow-hi/deploy/upload-custom-weights.md).

# Custom Model Weights अपलोड करें

संबंधित पृष्ठ:

* Roboflow में मॉडल को प्रशिक्षित करने के लिए, देखें [एक Model Train करें](/roboflow/roboflow-hi/train/train.md)
* मॉडल weights डाउनलोड करने के लिए, देखें [Model Weights डाउनलोड करें](/roboflow/roboflow-hi/deploy/download-roboflow-model-weights.md)

## Roboflow के बाहर प्रशिक्षित weights अपलोड करना

अपना कस्टम मॉडल प्रशिक्षण पूरा करने के बाद, अपने मॉडल weights को वापस अपने Roboflow project में अपलोड करें ताकि आप लाभ उठा सकें [Roboflow Inference](https://inference.roboflow.com/).

### Model समर्थन

देखें [Supported Models table](/roboflow/roboflow-hi/deploy/supported-models.md) weights upload compatibility के विवरण के लिए।

{% hint style="warning" %}

* YOLOv8 models को इस पर प्रशिक्षित किया जाना चाहिए `ultralytics==8.0.196`
* YOLOv9 models को इस का उपयोग करके प्रशिक्षित और अपलोड किया जाना चाहिए `ultralytics` से <https://github.com/WongKinYiu/yolov9>
* YOLOv10 models को इस का उपयोग करके प्रशिक्षित और अपलोड किया जाना चाहिए `ultralytics` से

  <https://github.com/THU-MIG/yolov10>
* YOLOv11 models को इस पर प्रशिक्षित किया जाना चाहिए `ultralytics<=8.3.40`
* YOLOv12 models को इस का उपयोग करके प्रशिक्षित और अपलोड किया जाना चाहिए `ultralytics` से <https://github.com/sunsmarterjie/yolov12>
  {% endhint %}

{% hint style="info" %}
बड़े model sizes बेहतर training परिणाम प्रदान करते हैं। हालांकि, model size जितना बड़ा होगा, training समय उतना ही धीमा होगा, और inference (model prediction) की गति भी धीमी होगी। इस पर विचार करें कि क्या आप तेज़ी से चलने वाली objects या video feeds पर real-time inference चाहते हैं (छोटा model उपयोग करना बेहतर है), या आप data एकत्र होने के बाद उसे process कर रहे हैं, और अधिक prediction accuracy को प्राथमिकता देते हैं (बड़ा model चुनें)।
{% endhint %}

### Versioned बनाम Versionless Models Upload

Roboflow आपके projects में models deploy करने के लिए दो अलग-अलग approaches प्रदान करता है, जिनमें से प्रत्येक अलग-अलग use cases और organizational needs के लिए उपयुक्त है। versioned और versionless deployments के बीच चुनाव इस बात पर निर्भर करता है कि क्या आपको dataset versions के साथ model evolution को track करना है, या आप अपने workspace में कई projects के बीच models share करना चाहते हैं।

* **Versionless Deployments**
  * workspace स्तर से संबद्ध
  * एक साथ कई projects में deploy किया जा सकता है
  * एक ही workspace के भीतर अलग-अलग projects के बीच models share करने के लिए आदर्श
* **Versioned Deployments**
  * विशिष्ट project versions से संबद्ध
  * एक [Version](/roboflow/roboflow-hi/train/versions-trainings-and-models.md) में कई uploaded models हो सकते हैं
  * dataset versions के साथ model evolution को track करने के लिए आदर्श
  * Label Assist पर model का उपयोग करने के लिए आदर्श
  * अन्य models को प्रशिक्षित करने के लिए checkpoint के रूप में model का उपयोग करने के लिए आदर्श

### Custom Weights अपलोड करें

सबसे पहले, सुनिश्चित करें कि आपके पास नवीनतम `roboflow` Python package इंस्टॉल किया हुआ है:

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

{% tabs %}
{% tab title="Python SDK (Versionless)" %}
versionless custom weights अपलोड करने के लिए, `workspace.deploy_model()` method का उपयोग करें:

```python
workspace.deploy_model(
    model_type="yolov8",  # मॉडल का प्रकार
    model_path="path/to/model",  # model directory का path
    project_ids=["project1", "project2"],  # project IDs की सूची
    model_name="my-model",  # model का नाम (कम से कम 1 अक्षर होना चाहिए, और numbers तथा dashes स्वीकार करता है)
    filename="weights/best.pt"  # weights file का path (default)
)
```

**पैरामीटर**

* model\_type (str): deploy किए जा रहे model का प्रकार (उदा., "yolov8", "yolov11")
* model\_path (str): model weights वाली directory का file path
* project\_ids (list\[str]): model को deploy करने के लिए project IDs की सूची
* model\_name (str): model की पहचान के लिए नाम - (कम से कम 1 अक्षर होना चाहिए, और numbers तथा dashes स्वीकार करता है)
* filename (str, optional): weights file का नाम (default "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"
)
```

{% endtab %}

{% tab title="Python SDK (Versioned)" %}
{% hint style="info" %}
Versioned custom-weights upload प्रत्येक uploaded model को dataset Version से जोड़ती है। यदि आपके dataset में कोई version generate नहीं हुआ है, तो आप एक बना सकते हैं [ऐप में](/roboflow/roboflow-hi/datasets/dataset-versions/create-a-dataset-version.md) या के माध्यम से [API](/developer/python-sdk/create-a-dataset-version.md).

पर डॉक्स देखें [API के माध्यम से version को load करने का तरीका](/developer/rest-api/versions/view-a-version.md) या नीचे दिए गए उदाहरण को देखें।
{% endhint %}

custom weights अपलोड करने के लिए, `version.deploy()` method का उपयोग Python SDK में करें।

**Usage**

```python
version.deploy(
    model_type="yolov8",  # मॉडल का प्रकार
    model_path="path/to/model",  # model directory का path
    filename="weights/best.pt"  # weights file का path (default)
)
```

**पैरामीटर**

* model\_type (str): deploy किए जाने वाले model का प्रकार (उदा., "yolov8", "yolov11")
* model\_path (str): model weights वाली directory का file path
* filename (str, optional): weights file का नाम (default "weights/best.pt" है)

**उदाहरण**

```python
from roboflow import Roboflow

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

#weights_filename निर्दिष्ट किया जा सकता है, default है "weights/best.pt"
version = project.version(VERSION_ID)

#example1 - yolov8 model के लिए directory path "training1/model1.pt" है
version.deploy("yolov8", "training1", "model1.pt")

#example2 - yolov8 model के लिए directory path "training1/weights/best.pt" है
version.deploy("yolov8", "training1")
```

**महत्वपूर्ण नोट्स**

{% hint style="info" %}
एक version में कई uploaded models हो सकते हैं। देखें [Versions, Trainings, and Models](/roboflow/roboflow-hi/train/versions-trainings-and-models.md) कि version पर models को कैसे संदर्भित किया जाता है।
{% endhint %}
{% endtab %}

{% tab title="CLI (Versionless और versioned)" %}
**प्रमाणीकरण**

किसी भी CLI commands का उपयोग करने से पहले, आपको Roboflow के साथ authenticate करना होगा:

1. प्रमाणीकरण command चलाएँ: `roboflow login`
2. terminal में दिखाई गई URL पर जाएँ: <https://app.roboflow.com/auth-cli>
3. website से अपना authentication token प्राप्त करें
4. टोकन को अपने terminal में paste करें

credentials स्वचालित रूप से यहाँ सहेजे जाएँगे `~/.config/roboflow/config.json`

**Model Weights अपलोड करना**

Roboflow CLI एक command प्रदान करता है जो प्रशिक्षित model weights को आपके Roboflow projects में upload करता है। यह तब उपयोगी है जब आप custom-trained models को Roboflow पर deploy करना चाहते हैं।

**बुनियादी उपयोग**

{% 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`: आपका workspace ID या URL (वैकल्पिक - यदि निर्दिष्ट नहीं किया गया तो default workspace का उपयोग करेगा)
* `-p, --project`: model upload करने के लिए project ID (versionless upload के लिए multiple projects के लिए इसे कई बार निर्दिष्ट किया जा सकता है)
* `-t, --model_type`: model का प्रकार (उदा., yolov8, paligemma2)
* `-m, --model_path`: प्रशिक्षित model file वाली directory का path
* `-v, --version_number`: वह version number जिसमें model upload करना है (वैकल्पिक)
* `-f, --filename`: model file का नाम (default: "weights/best.pt")
* `-n, --model_name`: model का नाम (versionless model deploy के लिए आवश्यक)

**उदाहरण**

<pre class="language-bash" data-overflow="wrap"><code class="lang-bash"># 1. किसी विशिष्ट version में model upload करें: 
<strong>roboflow upload_model -w my-workspace -p my-project -v 1 -t yolov8 -m ./weights
</strong>
# 2. एक versionless model को कई projects में upload करें:
roboflow upload_model -w my-workspace -p project1 -p project2 -t yolov11 -n my-model-v1 -m ./weights
# 3. एक versionless RF-DETR medium model को एक single project में upload करें: 
roboflow upload_model -w my-workspace -p my-project -t rfdetr-medium -n my-model-name -m ./ -f weights.pt
</code></pre>

{% endtab %}
{% endtabs %}

## अगले चरण

1. Roboflow के "Models" टैब में अपने model को देखें
2. अपने model को स्थानीय रूप से चलाएँ [Roboflow Inference Server](https://inference.roboflow.com/).
3. [अपने model को deploy करें](/roboflow/roboflow-hi/deploy/deployment-overview.md)
