跳至内容

参考资料 ultralytics/hub/__init__.py

备注

该文件可在https://github.com/ultralytics/ultralytics/blob/main/ ultralytics/hub/init.py。如果您发现问题,请通过提交 Pull Request🛠️ 帮助修复。谢谢🙏!



ultralytics.hub.login(api_key=None, save=True)

使用提供的 API 密钥登录Ultralytics HUB API。

会话不会被保存;需要时,会使用保存的 SETTINGS 或HUB_API_KEY 环境变量创建新的会话。 环境变量创建新会话。

参数

名称 类型 说明 默认值
api_key str

用于身份验证的 API 密钥。 如果未提供,将从 SETTINGS 或HUB_API_KEY 环境变量中获取。

None
save bool

如果身份验证成功,是否将 API 密钥保存到设置中。

True

返回:

类型 说明
bool

如果验证成功则为 True,否则为 False。

源代码 ultralytics/hub/__init__.py
def login(api_key: str = None, save=True) -> bool:
    """
    Log in to the Ultralytics HUB API using the provided API key.

    The session is not stored; a new session is created when needed using the saved SETTINGS or the HUB_API_KEY
    environment variable if successfully authenticated.

    Args:
        api_key (str, optional): API key to use for authentication.
            If not provided, it will be retrieved from SETTINGS or HUB_API_KEY environment variable.
        save (bool, optional): Whether to save the API key to SETTINGS if authentication is successful.

    Returns:
        (bool): True if authentication is successful, False otherwise.
    """
    checks.check_requirements("hub-sdk>=0.0.2")
    from hub_sdk import HUBClient

    api_key_url = f"{HUB_WEB_ROOT}/settings?tab=api+keys"  # set the redirect URL
    saved_key = SETTINGS.get("api_key")
    active_key = api_key or saved_key
    credentials = {"api_key": active_key} if active_key and active_key != "" else None  # set credentials

    client = HUBClient(credentials)  # initialize HUBClient

    if client.authenticated:
        # Successfully authenticated with HUB

        if save and client.api_key != saved_key:
            SETTINGS.update({"api_key": client.api_key})  # update settings with valid API key

        # Set message based on whether key was provided or retrieved from settings
        log_message = (
            "New authentication successful ✅" if client.api_key == api_key or not credentials else "Authenticated ✅"
        )
        LOGGER.info(f"{PREFIX}{log_message}")

        return True
    else:
        # Failed to authenticate with HUB
        LOGGER.info(f"{PREFIX}Retrieve API key from {api_key_url}")
        return False



ultralytics.hub.logout()

从设置文件中删除 API 密钥,退出Ultralytics HUB 。要重新登录,请使用 "yolo hub login"。

示例
from ultralytics import hub

hub.logout()
源代码 ultralytics/hub/__init__.py
def logout():
    """
    Log out of Ultralytics HUB by removing the API key from the settings file. To log in again, use 'yolo hub login'.

    Example:
        ```python
        from ultralytics import hub

        hub.logout()
        ```
    """
    SETTINGS["api_key"] = ""
    SETTINGS.save()
    LOGGER.info(f"{PREFIX}logged out ✅. To log in again, use 'yolo hub login'.")



ultralytics.hub.reset_model(model_id='')

将训练好的模型重置为未训练状态。

源代码 ultralytics/hub/__init__.py
def reset_model(model_id=""):
    """Reset a trained model to an untrained state."""
    r = requests.post(f"{HUB_API_ROOT}/model-reset", json={"modelId": model_id}, headers={"x-api-key": Auth().api_key})
    if r.status_code == 200:
        LOGGER.info(f"{PREFIX}Model reset successfully")
        return
    LOGGER.warning(f"{PREFIX}Model reset failure {r.status_code} {r.reason}")



ultralytics.hub.export_fmts_hub()

返回HUB 支持的导出格式列表。

源代码 ultralytics/hub/__init__.py
def export_fmts_hub():
    """Returns a list of HUB-supported export formats."""
    from ultralytics.engine.exporter import export_formats

    return list(export_formats()["Argument"][1:]) + ["ultralytics_tflite", "ultralytics_coreml"]



ultralytics.hub.export_model(model_id='', format='torchscript')

将模型导出为所有格式。

源代码 ultralytics/hub/__init__.py
def export_model(model_id="", format="torchscript"):
    """Export a model to all formats."""
    assert format in export_fmts_hub(), f"Unsupported export format '{format}', valid formats are {export_fmts_hub()}"
    r = requests.post(
        f"{HUB_API_ROOT}/v1/models/{model_id}/export", json={"format": format}, headers={"x-api-key": Auth().api_key}
    )
    assert r.status_code == 200, f"{PREFIX}{format} export failure {r.status_code} {r.reason}"
    LOGGER.info(f"{PREFIX}{format} export started ✅")



ultralytics.hub.get_export(model_id='', format='torchscript')

获取带下载 URL 的导出模型字典。

源代码 ultralytics/hub/__init__.py
def get_export(model_id="", format="torchscript"):
    """Get an exported model dictionary with download URL."""
    assert format in export_fmts_hub(), f"Unsupported export format '{format}', valid formats are {export_fmts_hub()}"
    r = requests.post(
        f"{HUB_API_ROOT}/get-export",
        json={"apiKey": Auth().api_key, "modelId": model_id, "format": format},
        headers={"x-api-key": Auth().api_key},
    )
    assert r.status_code == 200, f"{PREFIX}{format} get_export failure {r.status_code} {r.reason}"
    return r.json()



ultralytics.hub.check_dataset(path='', task='detect')

用于在上传前对HUB 数据集 Zip 文件进行错误检查的函数。它在数据集上传至 之前检查数据集是否有错误。 HUB使用示例如下。

参数

名称 类型 说明 默认值
path str

data.zip 的路径(data.zip 中包含 data.yaml)。默认为''。

''
task str

数据集任务。选项包括 "检测"、"分割"、"摆放 "和 "分类"。默认为 "检测"。

'detect'
示例
from ultralytics.hub import check_dataset

check_dataset('path/to/coco8.zip', task='detect')  # detect dataset
check_dataset('path/to/coco8-seg.zip', task='segment')  # segment dataset
check_dataset('path/to/coco8-pose.zip', task='pose')  # pose dataset
源代码 ultralytics/hub/__init__.py
def check_dataset(path="", task="detect"):
    """
    Function for error-checking HUB dataset Zip file before upload. It checks a dataset for errors before it is uploaded
    to the HUB. Usage examples are given below.

    Args:
        path (str, optional): Path to data.zip (with data.yaml inside data.zip). Defaults to ''.
        task (str, optional): Dataset task. Options are 'detect', 'segment', 'pose', 'classify'. Defaults to 'detect'.

    Example:
        ```python
        from ultralytics.hub import check_dataset

        check_dataset('path/to/coco8.zip', task='detect')  # detect dataset
        check_dataset('path/to/coco8-seg.zip', task='segment')  # segment dataset
        check_dataset('path/to/coco8-pose.zip', task='pose')  # pose dataset
        ```
    """
    HUBDatasetStats(path=path, task=task).get_json()
    LOGGER.info(f"Checks completed correctly ✅. Upload this dataset to {HUB_WEB_ROOT}/datasets/.")





创建于 2023-11-12,更新于 2023-11-25
作者:glenn-jocher(3)