انتقل إلى المحتوى

مرجع ل hub_sdk/modules/models.py

ملاحظه

هذا الملف متاح في https://github.com/ultralytics/ hub-sdk / blob / main / hub_sdk / modules / models.py. إذا اكتشفت مشكلة ، فيرجى المساعدة في إصلاحها من خلال المساهمة في طلب 🛠️ سحب. شكرا لك 🙏!



hub_sdk.modules.models.Models

قواعد: CRUDClient

فئة تمثل العميل للتفاعل مع النماذج من خلال عمليات CRUD. هذه الفئة تمدد CRUDClient فئة ويوفر أساليب محددة للعمل مع النماذج.

سمات:

اسم نوع وصف
base_endpoint str

عنوان URL لنقطة النهاية الأساسية لواجهة برمجة التطبيقات، مضبوط على "النماذج".

hub_client ModelUpload

مثيل من ModelUpload يستخدم للتفاعل مع تحميلات النموذج.

id (str, None)

المعرف الفريد للنموذج، إن وجد.

data dict

قاموس لتخزين بيانات النموذج.

metrics

عنصر نائب لتخزين مقاييس النموذج، إذا كان متاحا بعد الاسترجاع.

ملاحظه

يتم تعيين السمة "id" أثناء التهيئة ويمكن استخدامها لتحديد نموذج بشكل فريد. يتم استخدام سمة "البيانات" لتخزين بيانات النموذج التي تم جلبها من واجهة برمجة التطبيقات.

شفرة المصدر في 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()

    @staticmethod
    def _reconstruct_data(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(f"Received no response from the server for model ID: {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(f"Invalid response object received for model ID: {self.id}")
                return

            resp_data = response.json()
            if resp_data is None:
                self.logger.error(f"No data received in the response for model ID: {self.id}")
                return

            data = resp_data.get("data", {})
            self.data = self._reconstruct_data(data)
            self.logger.debug(f"Model data retrieved for ID: {self.id}")

        except Exception as e:
            self.logger.error(f"An error occurred while retrieving data for model ID: {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(f"An error occurred while creating the model: {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(f"Model Metrics not found: {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 start_heartbeat(self, interval: int = 60):
        """
        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
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
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(f"An error occurred while creating the model: {str(e)}")

delete(hard=False)

حذف مورد النموذج الذي يمثله هذا المثيل.

البارامترات:

اسم نوع وصف افتراضي
hard bool

إذا كان هذا صحيحا، فقم بإجراء حذف نهائي (دائم).

False
ملاحظه

تحدد المعلمة "hard" ما إذا كان سيتم إجراء حذف مبدئي (افتراضي) أو حذف نهائي. في حالة الحذف المبدئي ، قد يتم وضع علامة على النموذج على أنه محذوف ولكن يتم الاحتفاظ به في النظام. في حالة الحذف الثابت ، تتم إزالة النموذج نهائيا من النظام.

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب الحذف، أو لا شيء إذا فشل الحذف.

شفرة المصدر في hub_sdk/modules/models.py
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 محور.

Args: التنسيق (str): تنسيق التصدير هنا. فيما يلي تنسيقات التصدير المدعومة

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب التصدير، أو لا شيء إذا فشل التصدير.

شفرة المصدر في hub_sdk/modules/models.py
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
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
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(f"Received no response from the server for model ID: {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(f"Invalid response object received for model ID: {self.id}")
            return

        resp_data = response.json()
        if resp_data is None:
            self.logger.error(f"No data received in the response for model ID: {self.id}")
            return

        data = resp_data.get("data", {})
        self.data = self._reconstruct_data(data)
        self.logger.debug(f"Model data retrieved for ID: {self.id}")

    except Exception as e:
        self.logger.error(f"An error occurred while retrieving data for model ID: {self.id}, {str(e)}")

get_dataset_url()

احصل على عنوان URL لمجموعة البيانات المرتبط بالنموذج.

ارجاع:

نوع وصف
Optional[str]

عنوان URL لمجموعة البيانات أو لا شيء إذا لم يكن متاحا.

شفرة المصدر في hub_sdk/modules/models.py
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")

get_metrics()

احصل على مقاييس للنموذج.

ارجاع:

نوع وصف
(list(dict), optional)

قائمة كائنات المقاييس، أو لا شيء إذا فشلت.

شفرة المصدر في hub_sdk/modules/models.py
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(f"Model Metrics not found: {e}")

get_weights_url(weight='best')

احصل على عنوان URL لأوزان النموذج.

البارامترات:

اسم نوع وصف افتراضي
weight str

نوع الأوزان المراد استردادها.

'best'

ارجاع:

نوع وصف
Optional[str]

عنوان URL للأوزان المحددة أو لا شيء إذا لم يكن متاحا.

شفرة المصدر في hub_sdk/modules/models.py
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
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
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
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
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
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 محور.

البارامترات:

اسم نوع وصف افتراضي
image str

المسار إلى ملف الصورة.

مطلوب
config dict

تكوين للتنبؤ (JSON).

مطلوب

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب التنبؤ، أو لا شيء إذا فشل التحميل.

شفرة المصدر في hub_sdk/modules/models.py
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)

يبدأ في إرسال إشارات نبضات القلب إلى خادم لوحة وصل بعيدة.

تبدأ هذه الطريقة في إرسال إشارات نبضات القلب إلى خادم لوحة التحكم من أجل الإشارة إلى استمرار توافر وصحة العميل.

البارامترات:

اسم نوع وصف افتراضي
interval int

الفاصل الزمني ، بالثواني ، بين دقات القلب المتتالية.

60

ارجاع:

نوع وصف
None

لا ترجع الطريقة قيمة.

ملاحظه

دقات القلب ضرورية للحفاظ على الاتصال بخادم لوحة التحكم والتأكد من أن العميل يظل نشطا وسريع الاستجابة.

شفرة المصدر في hub_sdk/modules/models.py
def start_heartbeat(self, interval: int = 60):
    """
    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()

إيقاف إرسال إشارات نبضات القلب إلى خادم لوحة وصل بعيدة.

تنهي هذه الطريقة إرسال إشارات نبضات القلب إلى خادم لوحة التحكم ، مما يشير بشكل فعال إلى أن العميل لم يعد متاحا أو نشطا.

ارجاع:

نوع وصف
None

لا ترجع الطريقة قيمة.

ملاحظه

يجب أن يتم إيقاف ضربات القلب بعناية ، لأنه قد يؤدي إلى خادم لوحة التحكم اعتبار العميل غير متصل أو غير متاح.

شفرة المصدر في hub_sdk/modules/models.py
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
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 محور.

البارامترات:

اسم نوع وصف افتراضي
metrics dict
مطلوب

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب مقاييس التحميل، أو لا شيء إذا فشل.

شفرة المصدر في hub_sdk/modules/models.py
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 محور.

البارامترات:

اسم نوع وصف افتراضي
epoch int

حقبة التدريب الحالية.

مطلوب
weights str

المسار إلى ملف أوزان النموذج.

مطلوب
is_best bool

يشير إلى ما إذا كان النموذج الحالي هو الأفضل حتى الآن.

False
map float

متوسط دقة النموذج.

0.0
final bool

يشير إلى ما إذا كان النموذج هو النموذج النهائي بعد التدريب.

False

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب التحميل، أو لا شيء في حالة فشل التحميل.

شفرة المصدر في hub_sdk/modules/models.py
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
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"
        super().__init__(base_endpoint, "model", page_size, public, 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
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"
    super().__init__(base_endpoint, "model", page_size, public, headers)