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

# 사용자 지정 모델 가중치 업로드

관련 페이지:

* Roboflow에서 모델을 학습하려면 다음을 참조하세요 [모델 학습](/roboflow/roboflow-ko/train/train.md)
* 모델 가중치를 다운로드하려면 다음을 참조하세요 [Model Weight 다운로드](/roboflow/roboflow-ko/deploy/download-roboflow-model-weights.md)

## Roboflow 외부에서 학습한 가중치 업로드

커스텀 모델 학습을 완료하면, 모델 가중치를 Roboflow 프로젝트에 다시 업로드하여 다음의 이점을 활용하세요 [Roboflow Inference](https://inference.roboflow.com/).

### 모델 지원

다음을 참조하세요 [지원되는 모델 표](/roboflow/roboflow-ko/deploy/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" %}
모델 크기가 클수록 학습 결과가 더 좋습니다. 그러나 모델 크기가 클수록 학습 시간과 추론(model prediction) 속도가 느려집니다. 빠르게 움직이는 객체나 비디오 피드에 대해 실시간 추론이 필요한지(더 작은 모델을 사용하는 것이 좋음), 아니면 수집 후 데이터를 처리하며 더 높은 예측 정확도에 더 중점을 두는지(더 큰 모델 선택)를 고려하세요.
{% endhint %}

### 버전 있는 모델과 버전 없는 모델 업로드 비교

Roboflow는 프로젝트에 모델을 배포하는 두 가지 서로 다른 방식을 제공하며, 각각은 서로 다른 사용 사례와 조직의 요구를 충족합니다. 버전 있는 배포와 버전 없는 배포 중 어떤 것을 선택할지는 데이터셋 버전과 함께 모델의 변화를 추적해야 하는지, 아니면 workspace의 여러 프로젝트에 모델을 공유하고 싶은지에 따라 달라집니다.

* **버전 없는 배포**
  * workspace 수준에 연결됨
  * 여러 프로젝트에 동시에 배포할 수 있음
  * 같은 workspace 내의 여러 프로젝트에서 모델을 공유하는 데 이상적
* **버전 있는 배포**
  * 특정 프로젝트 버전에 연결됨
  * 데이터셋 버전당 모델 1개
  * 데이터셋 버전과 함께 모델의 변화를 추적하는 데 이상적
  * Label Assist에서 모델을 사용하는 데 이상적
  * 다른 모델 학습을 위한 체크포인트로 모델을 사용하는 데 이상적

### 커스텀 가중치 업로드

먼저 최신 `roboflow` Python 패키지가 설치되어 있는지 확인하세요:

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

{% tabs %}
{% tab title="Python SDK(버전 없음)" %}
버전 없는 커스텀 가중치를 업로드하려면 `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, optional): 가중치 파일의 이름(기본값은 "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(버전 있음)" %}
{% hint style="info" %}
버전 있는 모델은 해당하는 하나의 데이터셋 버전에만 연결되어야 합니다. 데이터셋에 생성된 버전이 없다면 다음에서 생성할 수 있습니다 [앱 내](/roboflow/roboflow-ko/datasets/dataset-versions/create-a-dataset-version.md) 또는 [API를 통해](/developer/python-sdk/create-a-dataset-version.md).

다음 문서를 참조하세요 [API를 통해 버전을 로드하는 방법](/developer/rest-api/versions/view-a-version.md) 또는 아래 예시를 참조하세요.
{% 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, optional): 가중치 파일의 이름(기본값은 "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")
```

**중요 참고 사항**

1. 버전 하나에는 한 번에 하나의 학습된 모델만 있을 수 있습니다
2. 이미 모델이 있는 버전에 업로드를 시도하면 429 오류가 발생합니다
   {% endtab %}

{% tab title="CLI(버전 없음 및 버전 있음)" %}
**인증**

CLI 명령을 사용하기 전에 Roboflow로 인증해야 합니다:

1. 인증 명령을 실행하세요: `roboflow login`
2. 터미널에 표시된 URL을 방문하세요: <https://app.roboflow.com/auth-cli>
3. 웹사이트에서 인증 토큰을 가져오세요
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(선택 사항 - 지정하지 않으면 기본 workspace를 사용함)
* `-p, --project`: 모델을 업로드할 프로젝트 ID(버전 없는 업로드의 경우 여러 프로젝트에 대해 여러 번 지정할 수 있음)
* `-t, --model_type`: 모델 유형(예: yolov8, paligemma2)
* `-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>

{% endtab %}
{% endtabs %}

## 다음 단계

1. Roboflow의 "Models" 탭에서 모델을 확인하세요
2. 다음을 사용하여 로컬에서 모델을 실행하세요 [Roboflow Inference Server](https://inference.roboflow.com/).
3. [모델 배포](/roboflow/roboflow-ko/deploy/deployment-overview.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-ko/deploy/upload-custom-weights.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
