参考资料 ultralytics/utils/__init__.py
备注
该文件可从https://github.com/ultralytics/ultralytics/blob/main/ ultralytics/ utils/init.py。如果您发现问题,请通过提交 Pull Request🛠️ 帮助修复。谢谢🙏!
ultralytics.utils.TQDM
垒球 tqdm
自定义Ultralytics tqdm 类,默认参数各不相同。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
*args |
list
|
传递给原始 tqdm 的位置参数。 |
()
|
**kwargs |
any
|
应用自定义默认值的关键字参数。 |
{}
|
源代码 ultralytics/utils/__init__.py
__init__(*args, **kwargs)
使用不同的默认参数初始化自定义Ultralytics tqdm 类。
请注意,在调用 TQDM 时仍可覆盖这些参数。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.SimpleClass
Ultralytics SimpleClass 是一个基类,提供了有用的字符串表示、错误报告和属性 访问方法,以方便调试和使用。
源代码 ultralytics/utils/__init__.py
__getattr__(attr)
自定义属性访问错误信息,并提供有用信息。
__repr__()
__str__()
返回对象的可读字符串。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.IterableSimpleNamespace
垒球 SimpleNamespace
Ultralytics IterableSimpleNamespace 是 SimpleNamespace 的一个扩展类,它增加了可迭代功能,可与 dict( 和 for 循环一起使用。 可与 dict() 和 for 循环一起使用。
源代码 ultralytics/utils/__init__.py
__getattr__(attr)
自定义属性访问错误信息,并提供有用信息。
源代码 ultralytics/utils/__init__.py
__iter__()
__str__()
ultralytics.utils.ThreadingLocked
一个装饰器类,用于确保函数或方法的线程安全执行。该类可用作装饰器 以确保在多个线程调用被装饰的函数时,每次只有一个线程能 执行该函数。
属性
名称 | 类型 | 说明 |
---|---|---|
lock |
Lock
|
锁对象,用于管理对装饰函数的访问。 |
示例
源代码 ultralytics/utils/__init__.py
__call__(f)
以线程安全方式执行函数或方法。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.TryExcept
垒球 ContextDecorator
Ultralytics TryExcept 类。用作 @TryExcept() 装饰器或 "with TryExcept(): "上下文管理器。
例如
作为一名装饰设计师:
>>> @TryExcept(msg="Error occurred in func", verbose=True)
>>> def func():
>>> # Function logic here
>>> pass
作为情境管理器:
源代码 ultralytics/utils/__init__.py
__enter__()
__exit__(exc_type, value, traceback)
定义退出 "with "代码块时的行为,必要时打印错误信息。
ultralytics.utils.Retry
垒球 ContextDecorator
使用指数后退执行函数的重试类。
可用作装饰器或上下文管理器,在出现异常时重试函数或代码块,最多可重试指定次数。 重试次数,重试间隔时间以指数形式递增。
例如
作为装饰器使用的示例:
>>> @Retry(times=3, delay=2)
>>> def test_func():
>>> # Replace with function logic that may raise exceptions
>>> return True
作为上下文管理器的使用示例:
源代码 ultralytics/utils/__init__.py
__call__(func)
使用指数退避重试的装饰器实现。
源代码 ultralytics/utils/__init__.py
__enter__()
__exit__(exc_type, exc_value, traceback)
以指数后退方式退出与此对象相关的运行时上下文。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.SettingsManager
垒球 dict
管理存储在 YAML 文件中的Ultralytics 设置。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
file |
str | Path
|
Ultralytics 设置 YAML 文件的路径。默认为 USER_CONFIG_DIR / 'settings.yaml'。 |
SETTINGS_YAML
|
version |
str
|
设置版本。如果本地版本不匹配,将保存新的默认设置。 |
'0.0.4'
|
源代码 ultralytics/utils/__init__.py
955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 |
|
__init__(file=SETTINGS_YAML, version='0.0.4')
使用默认设置初始化设置管理器,从 YAML 文件加载并验证当前设置。 文件中加载并验证当前设置。
源代码 ultralytics/utils/__init__.py
load()
reset()
save()
ultralytics.utils.plt_settings(rcparams=None, backend='Agg')
装饰器,用于临时设置 rc 参数和绘图函数的后台。
示例
decorator: @plt_settings({"font.size": 12}) context manager: with plt_settings({"font.size": 12}):
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
rcparams |
dict
|
要设置的遥控参数字典。 |
None
|
backend |
str
|
要使用的后端名称。默认为 "Agg"。 |
'Agg'
|
返回:
类型 | 说明 |
---|---|
Callable
|
带有临时设置的 rc 参数和后台的装饰函数。此装饰器可 应用于任何需要特定 matplotlib rc 参数和后端才能执行的函数。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.set_logging(name='LOGGING_NAME', verbose=True)
为给定名称设置日志记录,支持 UTF-8 编码,确保在不同环境下的兼容性。 环境的兼容性。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.emojis(string='')
ultralytics.utils.yaml_save(file='data.yaml', data=None, header='')
将 YAML 数据保存到文件中。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
file |
str
|
文件名。默认为 "data.yaml"。 |
'data.yaml'
|
data |
dict
|
以 YAML 格式保存的数据。 |
None
|
header |
str
|
要添加的 YAML 标头。 |
''
|
返回:
类型 | 说明 |
---|---|
None
|
数据将保存到指定文件。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.yaml_load(file='data.yaml', append_filename=False)
从文件加载 YAML 数据。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
file |
str
|
文件名。默认为 "data.yaml"。 |
'data.yaml'
|
append_filename |
bool
|
将 YAML 文件名添加到 YAML 字典中。默认为假。 |
False
|
返回:
类型 | 说明 |
---|---|
dict
|
YAML 数据和文件名。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.yaml_print(yaml_file)
漂亮地打印 YAML 文件或 YAML 格式的字典。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
yaml_file |
Union[str, Path, dict]
|
YAML 文件或 YAML 格式字典的文件路径。 |
所需 |
返回:
类型 | 说明 |
---|---|
None
|
无 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.read_device_model()
从系统中读取设备模型信息并缓存,以便快速访问。由 is_jetson() 和 is_raspberrypi() 使用。
返回:
类型 | 说明 |
---|---|
str
|
模型文件内容(如果成功读取),否则为空字符串。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_ubuntu()
检查操作系统是否为 Ubuntu。
返回:
类型 | 说明 |
---|---|
bool
|
如果操作系统是 Ubuntu,则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_colab()
检查当前脚本是否在 Google Colab 笔记本中运行。
返回:
类型 | 说明 |
---|---|
bool
|
如果在 Colab 笔记本内运行则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_kaggle()
检查当前脚本是否在 Kaggle 内核中运行。
返回:
类型 | 说明 |
---|---|
bool
|
如果在 Kaggle 内核中运行则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_jupyter()
检查当前脚本是否在 Jupyter Notebook 中运行。已在 Colab、Jupyterlab、Kaggle、Paperspace 上验证。
返回:
类型 | 说明 |
---|---|
bool
|
如果在 Jupyter Notebook 中运行为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_docker()
确定脚本是否在 Docker 容器内运行。
返回:
类型 | 说明 |
---|---|
bool
|
如果脚本在 Docker 容器内运行,则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_raspberrypi()
通过检查设备型号信息,确定Python 环境是否在 Raspberry Pi 上运行。
返回:
类型 | 说明 |
---|---|
bool
|
如果在 Raspberry Pi 上运行则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_jetson()
通过检查设备型号信息,确定Python 环境是否在 Jetson Nano 或 Jetson Orin 设备上运行。 信息。
返回:
类型 | 说明 |
---|---|
bool
|
如果在 Jetson Nano 或 Jetson Orin 上运行则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_online()
尝试连接已知的在线主机,检查互联网连接情况。
返回:
类型 | 说明 |
---|---|
bool
|
如果连接成功则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_pip_package(filepath=__name__)
确定给定文件路径下的文件是否是 pip 软件包的一部分。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
filepath |
str
|
要检查的文件路径。 |
__name__
|
返回:
类型 | 说明 |
---|---|
bool
|
如果文件是 pip 软件包的一部分,则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_dir_writeable(dir_path)
检查目录是否可写。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
dir_path |
str | Path
|
目录的路径。 |
所需 |
返回:
类型 | 说明 |
---|---|
bool
|
如果目录可写,则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_pytest_running()
确定 pytest 是否正在运行。
返回:
类型 | 说明 |
---|---|
bool
|
如果 pytest 正在运行,则为 True,否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_github_action_running()
确定当前环境是否为 GitHub Actions 运行环境。
返回:
类型 | 说明 |
---|---|
bool
|
如果当前环境是 GitHub Actions 运行环境,则为 True;否则为 False。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.get_git_dir()
判断当前文件是否是 git 仓库的一部分,如果是,则返回仓库根目录。如果 当前文件不是 git 仓库的一部分,则返回 None。
返回:
类型 | 说明 |
---|---|
Path | None
|
如果找到,则为 Git 根目录;如果找不到,则为 "无"。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.is_git_dir()
确定当前文件是否属于 git 仓库。如果当前文件不属于 git 版本库的一部分,则返回 None。
返回:
类型 | 说明 |
---|---|
bool
|
如果当前文件是 git 仓库的一部分,则为 True。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.get_git_origin_url()
读取 git 仓库的源 URL。
返回:
类型 | 说明 |
---|---|
str | None
|
git 仓库的源 URL,如果不是 git 目录,则为 "无"。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.get_git_branch()
返回当前的 git 分支名称。如果不在 git 仓库中,则返回 None。
返回:
类型 | 说明 |
---|---|
str | None
|
当前的 git 分支名称,如果不是 git 目录,则为 "无"。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.get_default_args(func)
返回函数的默认参数字典。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
func |
callable
|
要检查的功能。 |
所需 |
返回:
类型 | 说明 |
---|---|
dict
|
字典,其中每个键都是参数名,每个值都是该参数的默认值。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.get_ubuntu_version()
如果操作系统是 Ubuntu,则读取 Ubuntu 版本。
返回:
类型 | 说明 |
---|---|
str
|
Ubuntu 版本,如果不是 Ubuntu 操作系统,则为 "无"。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.get_user_config_dir(sub_dir='Ultralytics')
根据操作系统环境返回相应的配置目录。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
sub_dir |
str
|
要创建的子目录的名称。 |
'Ultralytics'
|
返回:
类型 | 说明 |
---|---|
Path
|
用户配置目录的路径。 |
源代码 ultralytics/utils/__init__.py
ultralytics.utils.colorstr(*input)
根据提供的颜色和样式参数为字符串着色。使用 ANSI 转义码。 详情请查看 https://en.wikipedia.org/wiki/ANSI_escape_code。
该函数有两种调用方式
- colorstr('color', 'style', 'your string')
- colorstr('your string')
在第二个表格中,"蓝色 "和 "粗体 "将被默认应用。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
*input |
str
|
字符串序列,其中前 n-1 个字符串是颜色和样式参数、 而最后一个字符串是要着色的字符串。 |
()
|
支持的颜色和样式
基本色:"黑"、"红"、"绿"、"黄"、"蓝"、"品红"、"青"、"白 亮色:'bright_black'(亮黑色)、'bright_red'(亮红色)、'bright_green'(亮绿色)、'bright_yellow'(亮黄色)、 亮蓝色"、"亮品红色"、"亮青色"、"亮白色 其他:'结束'、'粗体'、'下划线
返回:
类型 | 说明 |
---|---|
str
|
用 ANSI 转义码包装的输入字符串,用于指定颜色和样式。 |
例如
源代码 ultralytics/utils/__init__.py
ultralytics.utils.remove_colorstr(input_string)
删除字符串中的 ANSI 转义码,从而有效地取消字符串的着色。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
input_string |
str
|
要删除颜色和样式的字符串。 |
所需 |
返回:
类型 | 说明 |
---|---|
str
|
删除所有 ANSI 转义码的新字符串。 |
例如
源代码 ultralytics/utils/__init__.py
ultralytics.utils.threaded(func)
默认情况下对目标函数进行多线程处理,并返回线程或函数结果。
用作 @threaded 装饰器。除非传递 "threaded=False",否则函数将在单独的线程中运行。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.set_sentry()
初始化用于错误跟踪和报告的 Sentry SDK。仅在安装了 sentry_sdk 软件包且 sync=True 时才会使用。运行 "yolo settings "查看并更新设置 YAML 文件。
发送错误所需的条件(必须满足所有条件,否则不会报告错误): - 已安装 sentry_sdk 软件包 -YOLO 设置中的 sync=True - pytest 未运行 - 在 pip 软件包安装中运行 - 在非 git 目录中运行 - 运行时等级为 -1 或 0 - 在线环境 -CLI 用于运行软件包(以CLI 主命令的名称 "yolo"进行检查)
该函数还可配置 Sentry SDK 忽略 KeyboardInterrupt 和 FileNotFoundError 异常,并排除异常消息中包含 "内存不足 "的事件。
此外,该功能还可为 Sentry 事件设置自定义标签和用户信息。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.deprecation_warn(arg, new_arg, version=None)
当使用已被弃用的参数时,发出弃用警告,并建议更新参数。
源代码 ultralytics/utils/__init__.py
ultralytics.utils.clean_url(url)
从 URL 中删除 auth,即 https://url.com/file.txt?auth -> https://url.com/file.txt。