Reference for hub_sdk/modules/models.py
Note
This file is available at https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/modules/models.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!
hub_sdk.modules.models.Models
Models(
model_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None
)
Bases: CRUDClient
A class representing a client for interacting with Models through CRUD operations.
This class extends the CRUDClient class and provides specific methods for working with Models, including creating, retrieving, updating, and deleting model resources, as well as uploading model weights and metrics.
Attributes:
Name | Type | Description |
---|---|---|
base_endpoint |
str
|
The base endpoint URL for the API, set to "models". |
hub_client |
ModelUpload
|
An instance of ModelUpload used for interacting with model uploads. |
id |
str | None
|
The unique identifier of the model, if available. |
data |
Dict
|
A dictionary to store model data. |
metrics |
List[Dict] | None
|
Model metrics data, populated after retrieval. |
Note
The 'id' attribute is set during initialization and can be used to uniquely identify a model. The 'data' attribute is used to store model data fetched from the API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model_id
|
str
|
The unique identifier of the model. |
None
|
headers
|
Dict[str, Any]
|
Headers to be included in API requests. |
None
|
Source code in hub_sdk/modules/models.py
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
|
create_model
create_model(model_data: Dict) -> None
Create a new model with the provided data and set the model ID for the current instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model_data
|
Dict
|
A dictionary containing the data for creating the model. |
required |
Source code in hub_sdk/modules/models.py
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
|
delete
delete(hard: bool = False) -> Optional[Response]
Delete the model resource represented by this instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
hard
|
bool
|
If True, perform a hard (permanent) delete. |
False
|
Note
The 'hard' parameter determines whether to perform a soft delete (default) or a hard delete. In a soft delete, the model might be marked as deleted but retained in the system. In a hard delete, the model is permanently removed from the system.
Returns:
Type | Description |
---|---|
Optional[Response]
|
Response object from the delete request, or None if delete fails. |
Source code in hub_sdk/modules/models.py
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
|
export
export(format: str) -> Optional[Response]
Export model to specified format via Ultralytics HUB.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
format
|
str
|
Export format. Supported formats are available at https://docs.ultralytics.com/modes/export/#export-formats |
required |
Returns:
Type | Description |
---|---|
Optional[Response]
|
Response object from the export request, or None if export fails. |
Source code in hub_sdk/modules/models.py
311 312 313 314 315 316 317 318 319 320 321 322 |
|
get_architecture
get_architecture() -> Optional[str]
Get the architecture name of the model.
Returns:
Type | Description |
---|---|
Optional[str]
|
The architecture configuration path or None if not available. |
Source code in hub_sdk/modules/models.py
165 166 167 168 169 170 171 172 |
|
get_data
get_data() -> None
Retrieve data for the current model instance.
Fetches model data from the API if a valid model ID has been set and stores it in the instance. Logs appropriate error messages if the retrieval fails at any step.
Source code in hub_sdk/modules/models.py
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
|
get_dataset_url
get_dataset_url() -> Optional[str]
Get the dataset URL associated with the model.
Returns:
Type | Description |
---|---|
Optional[str]
|
The URL of the dataset or None if not available. |
Source code in hub_sdk/modules/models.py
174 175 176 177 178 179 180 181 |
|
get_metrics
get_metrics() -> Optional[List[Dict[str, Any]]]
Get metrics of the model.
Returns:
Type | Description |
---|---|
Optional[List[Dict[str, Any]]]
|
The list of metrics objects, or None if retrieval fails. |
Source code in hub_sdk/modules/models.py
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 |
|
get_weights_url
get_weights_url(weight: str = 'best') -> Optional[str]
Get the URL of the model weights.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
weight
|
str
|
Type of weights to retrieve, either "best" or "last". |
'best'
|
Returns:
Type | Description |
---|---|
Optional[str]
|
The URL of the specified weights or None if not available. |
Source code in hub_sdk/modules/models.py
183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
|
has_best_weights
has_best_weights() -> bool
Check if the model has best weights saved from previous training.
Source code in hub_sdk/modules/models.py
149 150 151 |
|
is_custom
is_custom() -> bool
Check if the model is a custom model rather than a standard one.
Source code in hub_sdk/modules/models.py
161 162 163 |
|
is_pretrained
is_pretrained() -> bool
Check if the model is pretrained with initial weights.
Source code in hub_sdk/modules/models.py
153 154 155 |
|
is_resumable
is_resumable() -> bool
Check if the model training can be resumed based on the presence of last weights.
Source code in hub_sdk/modules/models.py
145 146 147 |
|
is_trained
is_trained() -> bool
Check if the model has completed training and is in 'trained' status.
Source code in hub_sdk/modules/models.py
157 158 159 |
|
predict
predict(image: str, config: Dict[str, Any]) -> Optional[Response]
Run prediction using the model via Ultralytics HUB.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
image
|
str
|
The path to the image file. |
required |
config
|
Dict[str, Any]
|
A configuration dictionary for the prediction. |
required |
Returns:
Type | Description |
---|---|
Optional[Response]
|
Response object from the predict request, or None if prediction fails. |
Source code in hub_sdk/modules/models.py
324 325 326 327 328 329 330 331 332 333 334 335 |
|
start_heartbeat
start_heartbeat(interval: int = 60)
Start sending heartbeat signals to a remote hub server.
This method initiates the sending of heartbeat signals to a hub server to indicate the continued availability and health of the client.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
interval
|
int
|
The time interval, in seconds, between consecutive heartbeats. |
60
|
Note
Heartbeats are essential for maintaining a connection with the hub server and ensuring that the client remains active and responsive.
Source code in hub_sdk/modules/models.py
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
|
stop_heartbeat
stop_heartbeat() -> None
Stop sending heartbeat signals to a remote hub server.
This method terminates the sending of heartbeat signals to the hub server, effectively signaling that the client is no longer available or active.
Note
Stopping heartbeats should be done carefully, as it may result in the hub server considering the client as disconnected or unavailable.
Source code in hub_sdk/modules/models.py
298 299 300 301 302 303 304 305 306 307 308 309 |
|
update
update(data: Dict) -> Optional[Response]
Update the model resource represented by this instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data
|
Dict
|
The updated data for the model resource. |
required |
Returns:
Type | Description |
---|---|
Optional[Response]
|
Response object from the update request, or None if update fails. |
Source code in hub_sdk/modules/models.py
215 216 217 218 219 220 221 222 223 224 225 |
|
upload_metrics
upload_metrics(metrics: Dict) -> Optional[Response]
Upload model metrics to Ultralytics HUB.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
metrics
|
Dict
|
Dictionary containing model metrics data. |
required |
Returns:
Type | Description |
---|---|
Optional[Response]
|
Response object from the upload metrics request, or None if it fails. |
Source code in hub_sdk/modules/models.py
269 270 271 272 273 274 275 276 277 278 279 |
|
upload_model
upload_model(
epoch: int,
weights: str,
is_best: bool = False,
map: float = 0.0,
final: bool = False,
) -> Optional[Response]
Upload a model checkpoint to Ultralytics HUB.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
epoch
|
int
|
The current training epoch. |
required |
weights
|
str
|
Path to the model weights file. |
required |
is_best
|
bool
|
Indicates if the current model is the best one so far. |
False
|
map
|
float
|
Mean average precision of the model. |
0.0
|
final
|
bool
|
Indicates if the model is the final model after training. |
False
|
Returns:
Type | Description |
---|---|
Optional[Response]
|
Response object from the upload request, or None if upload fails. |
Source code in hub_sdk/modules/models.py
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 |
|
hub_sdk.modules.models.ModelList
ModelList(page_size=None, public=None, headers=None)
Bases: PaginatedList
Provides a paginated list interface for managing and querying models from the Ultralytics HUB API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
page_size
|
int
|
The number of items to request per page. |
None
|
public
|
bool
|
Whether the items should be publicly accessible. |
None
|
headers
|
Dict
|
Headers to be included in API requests. |
None
|
Source code in hub_sdk/modules/models.py
341 342 343 344 345 346 347 348 349 350 351 |
|