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>")
사용자 정의 구성으로 새 모델 만들기
생성 중 새 모델 이 기능을 사용하면 프로젝트 요구 사항에 맞게 조정하는 것이 간단합니다. 모델 이름을 지정하고 프로젝트 및 데이터 세트와 연결합니다. 배치 크기 또는 장치 설정과 같은 구성을 사용자 정의할 수도 있습니다. 다음 사항에 유의하세요. projectId
및 datasetId
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는 효과적인 모델 관리를 위한 포괄적인 작업 세트를 제공하여 머신 러닝 작업에서 최상의 결과를 얻는 데 집중할 수 있도록 지원합니다. 추가 질문이나 지원이 필요하시면 커뮤니티나 지원 팀에 문의해 주세요. 즐거운 모델링 되세요! 🚀