सामग्री पर जाएं

के लिए संदर्भ hub_sdk/modules/models.py

नोट

यह फ़ाइल यहाँ उपलब्ध है https://github.com/ultralytics/hub-एसडीके/बूँद/मुख्य/hub_sdk/मॉड्यूल/मॉडल.py। यदि आप कोई समस्या देखते हैं तो कृपया पुल अनुरोध का योगदान करके इसे ठीक करने में मदद करें 🛠️। 🙏 धन्यवाद !



hub_sdk.modules.models.Models

का रूप: CRUDClient

CRUD संचालन के माध्यम से मॉडल के साथ बातचीत करने के लिए एक ग्राहक का प्रतिनिधित्व करने वाला एक वर्ग। यह वर्ग CRUDClient का विस्तार करता है वर्ग और मॉडल के साथ काम करने के लिए विशिष्ट तरीके प्रदान करता है।

विशेषताएँ:

नाम प्रकार विवरण: __________
base_endpoint str

API के लिए आधार समापन बिंदु URL, "मॉडल" पर सेट होता है.

hub_client ModelUpload

मॉडल अपलोड के साथ इंटरैक्ट करने के लिए उपयोग किए जाने वाले ModelUpload का एक उदाहरण।

id (str, None)

मॉडल का युनीक आइडेंटिफ़ायर, यदि उपलब्ध हो.

data dict

मॉडल डेटा को संग्रहीत करने के लिए एक शब्दकोश।

metrics

मॉडल मेट्रिक्स के भंडारण के लिए प्लेसहोल्डर, यदि पुनर्प्राप्ति के बाद उपलब्ध हो।

नोट

'id' विशेषता आरंभीकरण के दौरान सेट की जाती है और इसका उपयोग किसी मॉडल को विशिष्ट रूप से पहचानने के लिए किया जा सकता है। 'data' विशेषता का उपयोग API से प्राप्त मॉडल डेटा को संग्रहीत करने के लिए किया जाता है।

में स्रोत कोड hub_sdk/modules/models.py
class Models(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.

    Attributes:
        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: Placeholder for storing model metrics, if available 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.
    """

    def __init__(self, model_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
        """
        Initialize a Models instance.

        Args:
            model_id (str, optional): The unique identifier of the model.
            headers (dict, optional): Headers to be included in API requests.
        """
        self.base_endpoint = "models"
        super().__init__(self.base_endpoint, "model", headers)
        self.hub_client = ModelUpload(headers)
        self.id = model_id
        self.data = {}
        self.metrics = None
        if model_id:
            self.get_data()

    def _reconstruct_data(self, data: dict) -> dict:
        """
        Reconstruct format of model data supported by ultralytics.

        Args:
            data: dict

        Returns:
            (dict): Reconstructed data format
        """
        if not data:
            return data

        data["config"] = {
            "batchSize": data.pop("batch_size", None),
            "epochs": data.pop("epochs", None),
            "imageSize": data.pop("imgsz", None),
            "patience": data.pop("patience", None),
            "device": data.pop("device", None),
            "cache": data.pop("cache", None),
        }

        return data

    def get_data(self) -> None:
        """
        Retrieves data for the current model instance.

        If a valid model ID has been set, it sends a request to fetch the model data and stores it in the instance.
        If no model ID has been set, it logs an error message.

        Returns:
            (None): The method does not return a value.
        """
        if not self.id:
            self.logger.error("No model id has been set. Update the model id or create a model.")
            return

        try:
            response = super().read(self.id)

            if response is None:
                self.logger.error("Received no response from the server for model id %s", self.id)
                return

            # Check if the response has a .json() method (it should if it's a response object)
            if not hasattr(response, "json"):
                self.logger.error("Invalid response object received for model id %s", self.id)
                return

            resp_data = response.json()
            if resp_data is None:
                self.logger.error("No data received in the response for model id %s", self.id)
                return

            data = resp_data.get("data", {})
            self.data = self._reconstruct_data(data)
            self.logger.debug("Model data retrieved for id %s", self.id)

        except Exception as e:
            self.logger.error("An error occurred while retrieving data for model id %s: %s", self.id, str(e))

    def create_model(self, model_data: dict) -> None:
        """
        Creates a new model with the provided data and sets the model ID for the current instance.

        Args:
            model_data (dict): A dictionary containing the data for creating the model.

        Returns:
            (None): The method does not return a value.
        """
        try:
            response = super().create(model_data)

            if response is None:
                self.logger.error("Received no response from the server while creating the model.")
                return

            # Ensuring the response object has the .json() method
            if not hasattr(response, "json"):
                self.logger.error("Invalid response object received while creating the model.")
                return

            resp_data = response.json()
            if resp_data is None:
                self.logger.error("No data received in the response while creating the model.")
                return

            self.id = resp_data.get("data", {}).get("id")

            # Check if the ID was successfully retrieved
            if not self.id:
                self.logger.error("Model ID not found in the response data.")
                return

            self.get_data()

        except Exception as e:
            self.logger.error("An error occurred while creating the model: %s", str(e))

    def is_resumable(self) -> bool:
        """
        Check if the model training can be resumed.

        Returns:
            (bool): True if resumable, False otherwise.
        """
        return self.data.get("has_last_weights", False)

    def has_best_weights(self) -> bool:
        """
        Check if the model has best weights saved.

        Returns:
            (bool): True if best weights available, False otherwise.
        """
        return self.data.get("has_best_weights", False)

    def is_pretrained(self) -> bool:
        """
        Check if the model is pretrained.

        Returns:
            (bool): True if pretrained, False otherwise.
        """
        return self.data.get("is_pretrained", False)

    def is_trained(self) -> bool:
        """
        Check if the model is trained.

        Returns:
            (bool): True if trained, False otherwise.
        """
        return self.data.get("status") == "trained"

    def is_custom(self) -> bool:
        """
        Check if the model is custom.

        Returns:
            (bool): True if custom, False otherwise.
        """
        return self.data.get("is_custom", False)

    def get_architecture(self) -> Optional[str]:
        """
        Get the architecture name of the model.

        Returns:
            (Optional[str]): The architecture name followed by '.yaml' or None if not available.
        """
        return self.data.get("cfg")

    def get_dataset_url(self) -> Optional[str]:
        """
        Get the dataset URL associated with the model.

        Returns:
            (Optional[str]): The URL of the dataset or None if not available.
        """
        return self.data.get("data")

    def get_weights_url(self, weight: str = "best") -> Optional[str]:
        """
        Get the URL of the model weights.

        Args:
            weight (str, optional): Type of weights to retrieve.

        Returns:
            (Optional[str]): The URL of the specified weights or None if not available.
        """
        if weight == "last":
            return self.data.get("resume")

        return self.data.get("weights")

    def delete(self, hard: bool = False) -> Optional[Response]:
        """
        Delete the model resource represented by this instance.

        Args:
            hard (bool, optional): If True, perform a hard (permanent) delete.

        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:
            (Optional[Response]): Response object from the delete request, or None if delete fails.
        """
        return super().delete(self.id, hard)

    def update(self, data: dict) -> Optional[Response]:
        """
        Update the model resource represented by this instance.

        Args:
            data (dict): The updated data for the model resource.

        Returns:
            (Optional[Response]): Response object from the update request, or None if update fails.
        """
        return super().update(self.id, data)

    def get_metrics(self) -> Optional[List[Dict[str, Any]]]:
        """
        Get metrics to of model.

        Returns:
            (list(dict), optional): The list of metrics objects, or None if it fails.
        """
        if self.metrics:
            return self.metrics

        endpoint = f"{HUB_API_ROOT}/v1/{self.base_endpoint}/{self.id}/metrics"
        try:
            results = self.get(endpoint)
            self.metrics = results.json().get("data")
            return self.metrics
        except Exception as e:
            self.logger.error("Model Metrics not found %s", e)

    def upload_model(
        self,
        epoch: int,
        weights: str,
        is_best: bool = False,
        map: float = 0.0,
        final: bool = False,
    ) -> Optional[Response]:
        """
        Upload a model checkpoint to Ultralytics HUB.

        Args:
            epoch (int): The current training epoch.
            weights (str): Path to the model weights file.
            is_best (bool): Indicates if the current model is the best one so far.
            map (float): Mean average precision of the model.
            final (bool): Indicates if the model is the final model after training.

        Returns:
            (Optional[Response]): Response object from the upload request, or None if upload fails.
        """
        return self.hub_client.upload_model(self.id, epoch, weights, is_best=is_best, map=map, final=final)

    def upload_metrics(self, metrics: dict) -> Optional[Response]:
        """
        Upload model metrics to Ultralytics HUB.

        Args:
            metrics (dict):

        Returns:
            (Optional[Response]): Response object from the upload metrics request, or None if it fails.
        """
        return self.hub_client.upload_metrics(self.id, metrics)  # response

    def get_download_link(self, type: str) -> Optional[str]:
        """
        Get model download link.

        Args:
            type (Optional[str]):

        Returns:
            (Optional[str]): Return download link or None if the link is not available.
        """
        try:
            payload = {"collection": "models", "docId": self.id, "object": type}
            endpoint = f"{HUB_FUNCTIONS_ROOT}/v1/storage"
            response = self.post(endpoint, json=payload)
            json = response.json()
            return json.get("data", {}).get("url")
        except Exception as e:
            self.logger.error(f"Failed to download link for {self.name}: %s", e)
            raise e

    def start_heartbeat(self, interval: int = 60) -> None:
        """
        Starts sending heartbeat signals to a remote hub server.

        This method initiates the sending of heartbeat signals to a hub server
        in order to indicate the continued availability and health of the client.

        Args:
            interval (int): The time interval, in seconds, between consecutive heartbeats.

        Returns:
            (None): The method does not return a value.

        Note:
            Heartbeats are essential for maintaining a connection with the hub server
            and ensuring that the client remains active and responsive.
        """
        self.hub_client._register_signal_handlers()
        self.hub_client._start_heartbeats(self.id, interval)

    def stop_heartbeat(self) -> None:
        """
        Stops 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.

        Returns:
            (None): The method does not return a value.

        Note:
            Stopping heartbeats should be done carefully, as it may result in the hub server
            considering the client as disconnected or unavailable.
        """
        self.hub_client._stop_heartbeats()

    def export(self, format: str) -> Optional[Response]:
        """
        Export to Ultralytics HUB.

        Args: format (str): Export format here. Here are supported export [formats](
        https://docs.ultralytics.com/modes/export/#export-formats)

        Returns:
            (Optional[Response]): Response object from the export request, or None if export fails.
        """
        return self.hub_client.export(self.id, format)  # response

    def predict(self, image: str, config: Dict[str, Any]) -> Optional[Response]:
        """
        Predict to Ultralytics HUB.

        Args:
            image (str): The path to the image file.
            config (dict): A configuration for the prediction (JSON).

        Returns:
            (Optional[Response]): Response object from the predict request, or None if upload fails.
        """
        return self.hub_client.predict(self.id, image, config)  # response

__init__(model_id=None, headers=None)

मॉडल इंस्टेंस शुरू करें।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
model_id str

मॉडल का युनीक आइडेंटिफ़ायर.

None
headers dict

एपीआई अनुरोधों में शामिल किए जाने वाले शीर्षलेख।

None
में स्रोत कोड hub_sdk/modules/models.py
29 बांग्लादेश 29 बांग्लादेश बांग्लादेश 29 बांग्लादेश 30 31 32 33 34 35 363738394041424344
def __init__(self, model_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
    """
    Initialize a Models instance.

    Args:
        model_id (str, optional): The unique identifier of the model.
        headers (dict, optional): Headers to be included in API requests.
    """
    self.base_endpoint = "models"
    super().__init__(self.base_endpoint, "model", headers)
    self.hub_client = ModelUpload(headers)
    self.id = model_id
    self.data = {}
    self.metrics = None
    if model_id:
        self.get_data()

create_model(model_data)

प्रदान किए गए डेटा के साथ एक नया मॉडल बनाता है और वर्तमान उदाहरण के लिए मॉडल आईडी सेट करता है।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
model_data dict

मॉडल बनाने के लिए डेटा रखने वाला एक शब्दकोश।

आवश्यक

देता:

प्रकार विवरण: __________
None

विधि एक मान वापस नहीं करता है।

में स्रोत कोड hub_sdk/modules/models.py
108 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 138139 140 141 142 143 144 145
def create_model(self, model_data: dict) -> None:
    """
    Creates a new model with the provided data and sets the model ID for the current instance.

    Args:
        model_data (dict): A dictionary containing the data for creating the model.

    Returns:
        (None): The method does not return a value.
    """
    try:
        response = super().create(model_data)

        if response is None:
            self.logger.error("Received no response from the server while creating the model.")
            return

        # Ensuring the response object has the .json() method
        if not hasattr(response, "json"):
            self.logger.error("Invalid response object received while creating the model.")
            return

        resp_data = response.json()
        if resp_data is None:
            self.logger.error("No data received in the response while creating the model.")
            return

        self.id = resp_data.get("data", {}).get("id")

        # Check if the ID was successfully retrieved
        if not self.id:
            self.logger.error("Model ID not found in the response data.")
            return

        self.get_data()

    except Exception as e:
        self.logger.error("An error occurred while creating the model: %s", str(e))

delete(hard=False)

इस इंस्टेंस द्वारा प्रस्तुत मॉडल संसाधन हटाएँ।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
hard bool

यदि सही है, तो एक कठिन (स्थायी) हटाएं निष्पादित करें।

False
नोट

'हार्ड' पैरामीटर निर्धारित करता है कि सॉफ्ट डिलीट (डिफ़ॉल्ट) करना है या हार्ड डिलीट करना है। सॉफ्ट डिलीट में, मॉडल को हटाए गए के रूप में चिह्नित किया जा सकता है लेकिन सिस्टम में बनाए रखा जा सकता है। हार्ड डिलीट में, मॉडल को सिस्टम से स्थायी रूप से हटा दिया जाता है।

देता:

प्रकार विवरण: __________
Optional[Response]

हटाने के अनुरोध से प्रतिक्रिया ऑब्जेक्ट, या कोई नहीं अगर हटाना विफल हो जाता है।

में स्रोत कोड hub_sdk/modules/models.py
225 226 227 228 229 230 231 232 233 234 235 236 237 238239240
def delete(self, hard: bool = False) -> Optional[Response]:
    """
    Delete the model resource represented by this instance.

    Args:
        hard (bool, optional): If True, perform a hard (permanent) delete.

    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:
        (Optional[Response]): Response object from the delete request, or None if delete fails.
    """
    return super().delete(self.id, hard)

export(format)

को निर्यात करें Ultralytics HUB.

Args: format (str): यहां फॉर्मेट एक्सपोर्ट करें। यहां समर्थित निर्यात प्रारूप हैं

देता:

प्रकार विवरण: __________
Optional[Response]

निर्यात अनुरोध से प्रतिसाद ऑब्जेक्ट, या कोई नहीं यदि निर्यात विफल रहता है।

में स्रोत कोड hub_sdk/modules/models.py
363 364 365 366 367368369 370 371 372373
def export(self, format: str) -> Optional[Response]:
    """
    Export to Ultralytics HUB.

    Args: format (str): Export format here. Here are supported export [formats](
    https://docs.ultralytics.com/modes/export/#export-formats)

    Returns:
        (Optional[Response]): Response object from the export request, or None if export fails.
    """
    return self.hub_client.export(self.id, format)  # response

get_architecture()

मॉडल का आर्किटेक्चर नाम प्राप्त करें।

देता:

प्रकार विवरण: __________
Optional[str]

आर्किटेक्चर नाम के बाद '.yaml' या कोई नहीं यदि उपलब्ध नहीं है।

में स्रोत कोड hub_sdk/modules/models.py
192 193 194 195 196 197 198  199
def get_architecture(self) -> Optional[str]:
    """
    Get the architecture name of the model.

    Returns:
        (Optional[str]): The architecture name followed by '.yaml' or None if not available.
    """
    return self.data.get("cfg")

get_data()

वर्तमान मॉडल आवृत्ति के लिए डेटा पुनर्प्राप्त करता है।

यदि एक मान्य मॉडल आईडी सेट की गई है, तो यह मॉडल डेटा लाने के लिए अनुरोध भेजता है और इसे इंस्टेंस में संग्रहीत करता है। यदि कोई मॉडल आईडी सेट नहीं किया गया है, तो यह एक त्रुटि संदेश लॉग करता है।

देता:

प्रकार विवरण: __________
None

विधि एक मान वापस नहीं करता है।

में स्रोत कोड hub_sdk/modules/models.py
70 71 72 73 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
def get_data(self) -> None:
    """
    Retrieves data for the current model instance.

    If a valid model ID has been set, it sends a request to fetch the model data and stores it in the instance.
    If no model ID has been set, it logs an error message.

    Returns:
        (None): The method does not return a value.
    """
    if not self.id:
        self.logger.error("No model id has been set. Update the model id or create a model.")
        return

    try:
        response = super().read(self.id)

        if response is None:
            self.logger.error("Received no response from the server for model id %s", self.id)
            return

        # Check if the response has a .json() method (it should if it's a response object)
        if not hasattr(response, "json"):
            self.logger.error("Invalid response object received for model id %s", self.id)
            return

        resp_data = response.json()
        if resp_data is None:
            self.logger.error("No data received in the response for model id %s", self.id)
            return

        data = resp_data.get("data", {})
        self.data = self._reconstruct_data(data)
        self.logger.debug("Model data retrieved for id %s", self.id)

    except Exception as e:
        self.logger.error("An error occurred while retrieving data for model id %s: %s", self.id, str(e))

get_dataset_url()

मॉडल से संबद्ध डेटासेट URL प्राप्त करें।

देता:

प्रकार विवरण: __________
Optional[str]

डेटासेट का URL या कोई नहीं यदि उपलब्ध नहीं है।

में स्रोत कोड hub_sdk/modules/models.py
201 202 203 204 205 206 207 208
def get_dataset_url(self) -> Optional[str]:
    """
    Get the dataset URL associated with the model.

    Returns:
        (Optional[str]): The URL of the dataset or None if not available.
    """
    return self.data.get("data")

मॉडल डाउनलोड लिंक प्राप्त करें।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
type Optional[str]
आवश्यक

देता:

प्रकार विवरण: __________
Optional[str]

यदि लिंक उपलब्ध नहीं है तो डाउनलोड लिंक या कोई नहीं लौटाएं।

में स्रोत कोड hub_sdk/modules/models.py
307 308 309 310 311 312 313 314 315 316 317 318319 320 321 322 323324 325
def get_download_link(self, type: str) -> Optional[str]:
    """
    Get model download link.

    Args:
        type (Optional[str]):

    Returns:
        (Optional[str]): Return download link or None if the link is not available.
    """
    try:
        payload = {"collection": "models", "docId": self.id, "object": type}
        endpoint = f"{HUB_FUNCTIONS_ROOT}/v1/storage"
        response = self.post(endpoint, json=payload)
        json = response.json()
        return json.get("data", {}).get("url")
    except Exception as e:
        self.logger.error(f"Failed to download link for {self.name}: %s", e)
        raise e

get_metrics()

मॉडल के लिए मीट्रिक प्राप्त करें।

देता:

प्रकार विवरण: __________
(list(dict), optional)

मीट्रिक ऑब्जेक्ट्स की सूची, या कोई नहीं यदि यह विफल हो जाता है।

में स्रोत कोड hub_sdk/modules/models.py
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268269 270
def get_metrics(self) -> Optional[List[Dict[str, Any]]]:
    """
    Get metrics to of model.

    Returns:
        (list(dict), optional): The list of metrics objects, or None if it fails.
    """
    if self.metrics:
        return self.metrics

    endpoint = f"{HUB_API_ROOT}/v1/{self.base_endpoint}/{self.id}/metrics"
    try:
        results = self.get(endpoint)
        self.metrics = results.json().get("data")
        return self.metrics
    except Exception as e:
        self.logger.error("Model Metrics not found %s", e)

get_weights_url(weight='best')

मॉडल वजन का URL प्राप्त करें।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
weight str

पुनः प्राप्त करने के लिए वजन का प्रकार।

'best'

देता:

प्रकार विवरण: __________
Optional[str]

निर्दिष्ट वज़न का URL या कोई नहीं यदि उपलब्ध नहीं है.

में स्रोत कोड hub_sdk/modules/models.py
210 211 212 213 214 215 216 217 218 219 220221 222223
def get_weights_url(self, weight: str = "best") -> Optional[str]:
    """
    Get the URL of the model weights.

    Args:
        weight (str, optional): Type of weights to retrieve.

    Returns:
        (Optional[str]): The URL of the specified weights or None if not available.
    """
    if weight == "last":
        return self.data.get("resume")

    return self.data.get("weights")

has_best_weights()

जांचें कि क्या मॉडल में सबसे अच्छा वजन बचाया गया है।

देता:

प्रकार विवरण: __________
bool

सच है अगर सबसे अच्छा वजन उपलब्ध है, तो गलत अन्यथा।

में स्रोत कोड hub_sdk/modules/models.py
156 157 158 159 160 161 162 163
def has_best_weights(self) -> bool:
    """
    Check if the model has best weights saved.

    Returns:
        (bool): True if best weights available, False otherwise.
    """
    return self.data.get("has_best_weights", False)

is_custom()

जांचें कि क्या मॉडल कस्टम है।

देता:

प्रकार विवरण: __________
bool

सही अगर रिवाज, गलत अन्यथा।

में स्रोत कोड hub_sdk/modules/models.py
183 184 185 186 187 188 189190
def is_custom(self) -> bool:
    """
    Check if the model is custom.

    Returns:
        (bool): True if custom, False otherwise.
    """
    return self.data.get("is_custom", False)

is_pretrained()

जांचें कि क्या मॉडल पहले से प्रशिक्षित है।

देता:

प्रकार विवरण: __________
bool

सच है अगर पूर्वप्रशिक्षित, गलत अन्यथा।

में स्रोत कोड hub_sdk/modules/models.py
165 166 167 168 169 170 171 172
def is_pretrained(self) -> bool:
    """
    Check if the model is pretrained.

    Returns:
        (bool): True if pretrained, False otherwise.
    """
    return self.data.get("is_pretrained", False)

is_resumable()

जांचें कि क्या मॉडल प्रशिक्षण फिर से शुरू किया जा सकता है।

देता:

प्रकार विवरण: __________
bool

सही अगर फिर से शुरू करने योग्य, गलत अन्यथा।

में स्रोत कोड hub_sdk/modules/models.py
147148 149 150 151 152 153154
def is_resumable(self) -> bool:
    """
    Check if the model training can be resumed.

    Returns:
        (bool): True if resumable, False otherwise.
    """
    return self.data.get("has_last_weights", False)

is_trained()

जांचें कि क्या मॉडल प्रशिक्षित है।

देता:

प्रकार विवरण: __________
bool

सच है अगर प्रशिक्षित है, अन्यथा झूठा।

में स्रोत कोड hub_sdk/modules/models.py
174 175 176 177 178179 180 181
def is_trained(self) -> bool:
    """
    Check if the model is trained.

    Returns:
        (bool): True if trained, False otherwise.
    """
    return self.data.get("status") == "trained"

predict(image, config)

भविष्यवाणी करने के लिए Ultralytics HUB.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
image str

छवि फ़ाइल का पथ.

आवश्यक
config dict

भविष्यवाणी के लिए कॉन्फ़िगरेशन (JSON).

आवश्यक

देता:

प्रकार विवरण: __________
Optional[Response]

भविष्यवाणी अनुरोध से प्रतिक्रिया ऑब्जेक्ट, या कोई नहीं अगर अपलोड विफल रहता है।

में स्रोत कोड hub_sdk/modules/models.py
375 376 377 378 379 380 381 382 383 384 385386
def predict(self, image: str, config: Dict[str, Any]) -> Optional[Response]:
    """
    Predict to Ultralytics HUB.

    Args:
        image (str): The path to the image file.
        config (dict): A configuration for the prediction (JSON).

    Returns:
        (Optional[Response]): Response object from the predict request, or None if upload fails.
    """
    return self.hub_client.predict(self.id, image, config)  # response

start_heartbeat(interval=60)

रिमोट पर दिल की धड़कन के संकेत भेजना शुरू कर देता है hub सर्वर।

यह विधि दिल की धड़कन के संकेतों को भेजने की शुरुआत करती है a hub सर्वर ग्राहक की निरंतर उपलब्धता और स्वास्थ्य को इंगित करने के लिए।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
interval int

समय अंतराल, सेकंड में, लगातार दिल की धड़कन के बीच।

60

देता:

प्रकार विवरण: __________
None

विधि एक मान वापस नहीं करता है।

नोट

के साथ संबंध बनाए रखने के लिए दिल की धड़कन आवश्यक है hub सर्वर और यह सुनिश्चित करना कि ग्राहक सक्रिय और उत्तरदायी बना रहे।

में स्रोत कोड hub_sdk/modules/models.py
327 328 329 330 331 332 333 334 335 336 337 338339 340341 342 343 344 345
def start_heartbeat(self, interval: int = 60) -> None:
    """
    Starts sending heartbeat signals to a remote hub server.

    This method initiates the sending of heartbeat signals to a hub server
    in order to indicate the continued availability and health of the client.

    Args:
        interval (int): The time interval, in seconds, between consecutive heartbeats.

    Returns:
        (None): The method does not return a value.

    Note:
        Heartbeats are essential for maintaining a connection with the hub server
        and ensuring that the client remains active and responsive.
    """
    self.hub_client._register_signal_handlers()
    self.hub_client._start_heartbeats(self.id, interval)

stop_heartbeat()

रिमोट पर दिल की धड़कन के संकेत भेजना बंद कर देता है hub सर्वर।

यह विधि दिल की धड़कन के संकेतों को भेजने को समाप्त कर देती है hub सर्वर प्रभावी रूप से संकेत देना कि क्लाइंट अब उपलब्ध या सक्रिय नहीं है।

देता:

प्रकार विवरण: __________
None

विधि एक मान वापस नहीं करता है।

नोट

दिल की धड़कन को रोकना सावधानी से किया जाना चाहिए, क्योंकि इसके परिणामस्वरूप hub सर्वर क्लाइंट को डिस्कनेक्ट या अनुपलब्ध मानना।

में स्रोत कोड hub_sdk/modules/models.py
347 348 349 350 351 352 353 354 355 356 357 358 359 360 361
def stop_heartbeat(self) -> None:
    """
    Stops 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.

    Returns:
        (None): The method does not return a value.

    Note:
        Stopping heartbeats should be done carefully, as it may result in the hub server
        considering the client as disconnected or unavailable.
    """
    self.hub_client._stop_heartbeats()

update(data)

इस इंस्टेंस द्वारा प्रस्तुत मॉडल संसाधन का अद्यतन करें.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
data dict

मॉडल संसाधन के लिए अद्यतन डेटा।

आवश्यक

देता:

प्रकार विवरण: __________
Optional[Response]

अद्यतन अनुरोध से प्रतिसाद ऑब्जेक्ट, या कोई नहीं यदि अद्यतन विफल रहता है।

में स्रोत कोड hub_sdk/modules/models.py
242 243 244 245 246 247 248 249 250 251252
def update(self, data: dict) -> Optional[Response]:
    """
    Update the model resource represented by this instance.

    Args:
        data (dict): The updated data for the model resource.

    Returns:
        (Optional[Response]): Response object from the update request, or None if update fails.
    """
    return super().update(self.id, data)

upload_metrics(metrics)

मॉडल मीट्रिक को यहां अपलोड करें Ultralytics HUB.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
metrics dict
आवश्यक

देता:

प्रकार विवरण: __________
Optional[Response]

अपलोड मीट्रिक अनुरोध से प्रतिक्रिया ऑब्जेक्ट, या कोई नहीं अगर यह विफल हो जाता है।

में स्रोत कोड hub_sdk/modules/models.py
295 296 297 298299300 301 302 303 304 305
def upload_metrics(self, metrics: dict) -> Optional[Response]:
    """
    Upload model metrics to Ultralytics HUB.

    Args:
        metrics (dict):

    Returns:
        (Optional[Response]): Response object from the upload metrics request, or None if it fails.
    """
    return self.hub_client.upload_metrics(self.id, metrics)  # response

upload_model(epoch, weights, is_best=False, map=0.0, final=False)

एक मॉडल चेकपॉइंट अपलोड करें Ultralytics HUB.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
epoch int

वर्तमान प्रशिक्षण युग।

आवश्यक
weights str

मॉडल वजन फ़ाइल के लिए पथ।

आवश्यक
is_best bool

इंगित करता है कि क्या वर्तमान मॉडल अब तक का सबसे अच्छा है।

False
map float

मॉडल की औसत औसत सटीकता।

0.0
final bool

इंगित करता है कि प्रशिक्षण के बाद मॉडल अंतिम मॉडल है या नहीं।

False

देता:

प्रकार विवरण: __________
Optional[Response]

अपलोड अनुरोध से प्रतिक्रिया ऑब्जेक्ट, या कोई नहीं यदि अपलोड विफल हो जाता है।

में स्रोत कोड hub_sdk/modules/models.py
272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288289 290 291 292 293
def upload_model(
    self,
    epoch: int,
    weights: str,
    is_best: bool = False,
    map: float = 0.0,
    final: bool = False,
) -> Optional[Response]:
    """
    Upload a model checkpoint to Ultralytics HUB.

    Args:
        epoch (int): The current training epoch.
        weights (str): Path to the model weights file.
        is_best (bool): Indicates if the current model is the best one so far.
        map (float): Mean average precision of the model.
        final (bool): Indicates if the model is the final model after training.

    Returns:
        (Optional[Response]): Response object from the upload request, or None if upload fails.
    """
    return self.hub_client.upload_model(self.id, epoch, weights, is_best=is_best, map=map, final=final)



hub_sdk.modules.models.ModelList

का रूप: PaginatedList

में स्रोत कोड hub_sdk/modules/models.py
389 390 391 392 393 394 395 396 397 398 399 400 401402
class ModelList(PaginatedList):
    def __init__(self, page_size=None, public=None, headers=None):
        """
        Initialize a ModelList instance.

        Args:
            page_size (int, optional): The number of items to request per page.
            public (bool, optional): Whether the items should be publicly accessible.
            headers (dict, optional): Headers to be included in API requests.
        """
        base_endpoint = "models"
        if public:
            base_endpoint = f"public/{base_endpoint}"
        super().__init__(base_endpoint, "model", page_size, headers)

__init__(page_size=None, public=None, headers=None)

ModelList इंस्टेंस शुरू करें।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
page_size int

प्रति पृष्ठ अनुरोध करने के लिए आइटम की संख्या.

None
public bool

क्या आइटम सार्वजनिक रूप से सुलभ होने चाहिए।

None
headers dict

एपीआई अनुरोधों में शामिल किए जाने वाले शीर्षलेख।

None
में स्रोत कोड hub_sdk/modules/models.py
390 391 392 393 394 395 396 397 398 399400 401402
def __init__(self, page_size=None, public=None, headers=None):
    """
    Initialize a ModelList instance.

    Args:
        page_size (int, optional): The number of items to request per page.
        public (bool, optional): Whether the items should be publicly accessible.
        headers (dict, optional): Headers to be included in API requests.
    """
    base_endpoint = "models"
    if public:
        base_endpoint = f"public/{base_endpoint}"
    super().__init__(base_endpoint, "model", page_size, headers)