콘텐츠로 건너뛰기

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

프로젝트 및 데이터 세트 필수 조건 액세스

모델을 생성하거나 학습하기 전에 a와 프로젝트 그리고 데이터 세트 이 존재합니다. 다음 코드 스니펫은 객체를 초기화하여 이러한 구성 요소를 확인하는 데 도움이 됩니다. 모델 학습을 구성하기 위해 프로젝트와 데이터 세트를 활용하는 것이 유익하지만 필수는 아닙니다. 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>")

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

생성 중 새 모델 이 기능을 사용하면 프로젝트 요구 사항에 맞게 조정하는 것이 간단합니다. 모델 이름을 지정하고 프로젝트 및 데이터 세트와 연결합니다. 배치 크기 또는 장치 설정과 같은 구성을 사용자 정의할 수도 있습니다. 다음 사항에 유의하세요. projectIddatasetId parameter는 모델을 프로젝트나 데이터 세트에 연결할 준비가 되지 않은 경우 선택 사항입니다.

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 플래그와 훈련 epoch를 명확하게 표시합니다.

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개월 전에 업데이트됨

댓글