콘텐츠로 건너뛰기

Ultralytics HUB-SDK 모델 관리

Ultralytics HUB-SDK 모델 관리 설명서에 오신 것을 환영합니다! 이제 막 머신 러닝 모델 관리를 시작하시든, 구체적인 작업 지침을 찾고 계신 숙련된 데이터 과학자이든, 잘 찾아오셨습니다. 이 가이드는 HUB-SDK 기능에 대한 원활한 안내를 제공하여 모델을 효율적으로 관리할 수 있는 노하우를 얻을 수 있도록 도와드립니다.

고유 식별자로 모델 검색하기

머신 러닝 워크플로에서 특정 모델에 액세스하는 것은 일반적인 요구 사항입니다. Ultralytics HUB-SDK를 사용하면 ID로 모델을 가져오는 것이 간단합니다. 이 기능은 제공된 고유 식별자를 기반으로 모델 개체를 설정하여 모델의 세부 정보 및 작업에 대한 전체 액세스 권한을 부여합니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
print(model.data)  # Outputs the model's metadata and configuration

프로젝트 및 데이터 집합 사전 요구 사항 액세스

모델을 만들거나 훈련하기 전에 다음 두 가지를 모두 충족하는지 확인하는 것이 중요합니다. 프로젝트데이터 세트 가 있는지 확인합니다. 다음 코드 조각은 개체를 초기화하여 이러한 구성 요소를 검증하는 데 도움이 됩니다. 프로젝트와 데이터 세트를 활용하여 모델 학습을 구성하는 것이 유용하지만 필수는 아닙니다. 두 ID 중 하나가 누락된 경우 개체 데이터(project.data, dataset.data)는 비어 있습니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")

사용자 지정 구성으로 새 모델 만들기

만들기 새 모델 이 기능을 사용하면 프로젝트 요구 사항에 맞는 모델을 간단하게 만들 수 있습니다. 모델 이름을 지정하고 프로젝트 및 데이터 세트와 연결하세요. 배치 크기 또는 장치 설정과 같은 구성을 사용자 지정할 수도 있습니다. 참고 사항 projectId 그리고 datasetId 매개 변수는 아직 모델을 프로젝트나 데이터 집합에 연결할 준비가 되지 않은 경우 선택 사항입니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

data = {
    "meta": {"name": "sdk model"},  # Model name
    "projectId": project.id,  # Optional: Associate with an existing project
    "datasetId": dataset.id,  # Optional: Associate with an existing dataset
    "config": {  # Define hyperparameters and settings
        "batchSize": "-1",
        "cache": "ram",
        "device": "name",
        "epochs": "5",
        "imageSize": "640",
        "patience": "5",  # Stop training if validation doesn't improve
    },
}
model = client.model()
model.create_model(data)  # Creates the model with your specified details

기존 모델의 메타데이터 또는 구성 업데이트

프로젝트가 발전함에 따라 명확성을 위해 모델 이름을 변경하는 등 모델의 메타데이터를 업데이트해야 할 수도 있습니다. SDK는 이러한 세부 정보를 손쉽게 새로 고칠 수 있는 방법을 제공하여 수동 오류를 최소화하고 시간을 절약할 수 있습니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.update({"meta": {"name": "Updated Model Name"}})  # Renames the specified model

모델을 안전하게 삭제하기

모델 삭제는 되돌릴 수 없으므로 이 기능은 신중하게 사용하세요. 시스템에서 모델을 제거하려는 경우 다음 명령을 실행하면 지정된 모델과 관련된 모든 데이터가 영구적으로 삭제됩니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.delete(hard=True)  # Permanently deletes the specified model

기본적으로 delete 메서드는 소프트 삭제를 수행하여 모델을 영구적으로 제거하지 않고 비활성 상태로 표시합니다. 하드 삭제를 수행하여 모델을 관련 데이터와 함께 영구적으로 제거하려면 다음과 같은 인수를 전달합니다. hard=True 를 클릭합니다. 하드 삭제 옵션을 사용할 때는 되돌릴 수 없으므로 주의하세요.

페이지 매김으로 모든 모델 나열하기

가져 오기를 간소화하는 Ultralytics HUB-SDK 모델 목록를 사용하여 페이지 매김을 구현하여 잠재적으로 큰 컬렉션을 효율적으로 탐색할 수 있습니다. 다음과 같은 인수를 사용자 정의하여 page_size를 사용하면 비공개 프로젝트와 공개 프로젝트를 모두 볼 수 있는 기능을 포함하여 필요에 맞게 출력을 조정할 수 있습니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model_list = client.model_list(page_size=10)  # Fetches the first page with 10 models
print("Current result:", model_list.results)  # Displays the current page's models

model_list.next()  # Move to the next page
print("Next page result:", model_list.results)

model_list.previous()  # Return to the previous page
print("Previous page result:", model_list.results)

교육 지표 업로드 및 시각화

학습 프로세스 전반에 걸쳐 모델의 성능 지표를 추적하고 시각화하려면 이 기능을 사용하여 손실 및 정확도와 같은 지표를 업로드하세요. 이를 통해 훈련 진행 상황을 지속적으로 모니터링하고 분석 단계를 간소화할 수 있습니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")

# Define your metrics structure. Keys are steps, and values are JSON strings of metrics.
data = {
    1: '{"loss/1": 0.5, "accuracy/1": 0.85}',
    2: '{"loss/2": 0.4, "accuracy/2": 0.88}',
    3: '{"loss/3": 0.3, "accuracy/3": 0.90}',
}

model.upload_metrics(data)  # Uploads the specified metrics to the model

배포 또는 분석을 위해 모델 내보내기

배포 또는 심층 분석 등 다양한 목적으로 모델을 내보내는 것은 간단합니다. 필요한 형식을 지정하면 이 기능이 그에 따라 모델을 준비합니다. TensorFlow 형식이 필요하든 PyTorch 형식이 필요하든 SDK는 이를 원활하게 처리합니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.export(format="pyTorch")  # Exports the model as a PyTorch file

직접 가중치 URL 검색

때때로 원격으로 저장된 모델의 아티팩트에 직접 액세스해야 하는 경우가 있습니다. 이 기능은 가장 실적이 좋은 모델 가중치와 같은 특정 파일에 액세스할 수 있는 URL을 제공합니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
weight_url = model.get_weights_url("best")  # or "last"
print("Weight URL link:", weight_url)

모델 체크포인트 업로드

업로드하기 모델 체크포인트 를 사용하면 간단합니다. upload_model 함수를 사용하세요. 를 사용하여 체크포인트의 중요도를 표시합니다. is_best 플래그와 교육 기간을 명확하게 표시합니다.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.upload_model(is_best=True, epoch=5, weights="<Weight File>")  # Uploads the specified model checkpoint

결론

Ultralytics HUB-SDK는 효과적인 모델 관리를 위한 포괄적인 작업 세트를 제공하여 사용자가 머신 러닝 작업에서 최상의 결과를 달성하는 데 집중할 수 있도록 지원합니다. 추가 질문이 있거나 도움이 필요한 경우 커뮤니티 또는 지원팀에 문의하세요. 행복한 모델링! 🚀

📅1 년 전 생성됨 ✏️ 1개월 전 업데이트됨

댓글