输出模型
class OutputModel()
为任务(实验)创建一个输出模型以存储训练结果。
OutputModel对象总是与Task对象连接,因为它是以Task对象作为参数实例化的。因此,它自动注册为Task(实验)的输出模型。
OutputModel 对象是可读写的。
一个常见的用例是重用OutputModel对象,并在存储模型快照后覆盖权重。 另一个用例是为任务(实验)创建多个OutputModel对象,并在找到新的高分后存储模型快照。
如果模型配置和/或模型的标签枚举为None
,则输出模型将使用任务对象输入模型中的值进行初始化。
当在远程工作节点上执行任务(实验)时,您可以使用ClearML Web应用程序修改模型配置和/或模型的标签枚举。
创建一个新模型并立即将其连接到任务。
我们不允许在没有任务的情况下创建模型,因此我们始终跟踪我们是如何创建模型的 在远程执行中,模型参数可以被任务覆盖 (例如模型配置和标签枚举器)
-
参数
-
任务 (任务 ) – 与OutputModel对象关联的Task对象。
-
config_text (无约束文本字符串 ) – 配置作为字符串。这通常是配置字典文件的内容。指定
config_text
或config_dict
,但不能同时指定两者。 -
config_dict (dict ) – 配置作为一个字典。 指定
config_dict
或config_text
,但不能同时指定两者。 -
label_enumeration (dict ) – 字符串(标签)到整数(值)对的标签枚举字典。 (可选)
例如:
{
"background": 0,
"person": 1
}-
name (str ) – 新创建模型的名称。(可选)
-
标签 (列表 ( 字符串 ) ) – 一个字符串列表,用于模型的标签。(可选)
-
comment (str ) – 模型的注释/描述。(可选)
-
framework (str * 或 * Framework 对象 ) – 模型的框架或一个 Framework 对象。(可选)
-
base_model_id – 可选的,要重用的模型ID
-
存档
archive()
归档模型。如果模型已经归档,则此操作无效
-
返回类型
()
评论
属性 注释: str
模型的注释。同时,用于模型描述。
-
返回类型
str
-
返回
模型注释/描述。
配置字典
属性配置字典
获取从config_text
文本解析出的配置作为字典。这通常代表模型配置。例如,从prototxt到ini文件或python代码进行评估。
-
返回类型
dict
-
返回
配置。
配置文本
属性配置文本
获取配置作为字符串。例如,prototxt、ini文件或要评估的Python代码。
-
返回类型
str
-
返回
配置。
连接
connect()
如果模型是预先存在的模型,则将当前模型连接到任务对象。预先存在的模型包括:
-
导入的模型。
-
模型,其元数据ClearML Server(后端)已经在存储。
-
来自其他来源的模型,例如TensorFlow等框架。
-
参数
-
任务 (对象 ) – 一个任务对象。
-
name (str ) – 模型名称,它将出现在任务对象上。 模型对象本身可以有不同的名称, 这是为了支持单个任务使用/创建的多个模型。 使用示例包括GANs或模型集成
-
-
返回类型
None
框架
属性框架: str
模型的机器学习框架(例如:PyTorch, TensorFlow, XGBoost 等)。
-
返回类型
str
-
返回
模型的框架
获取所有元数据
get_all_metadata()
如果您希望将值转换为其类型(如果可能),请参见 Model.get_all_metadata_casted
-
返回类型
Dict
[str
,Dict
[str
,str
]] -
返回
获取所有元数据作为格式为Dict[key, Dict[value, type]]的字典。键、值和类型条目都是字符串。请注意,每个条目可能还有一个额外的‘key’条目,重复键。
获取所有元数据转换
get_all_metadata_casted()
-
返回类型
Dict
[str
,Dict
[str
,Any
]] -
返回
获取所有元数据作为格式为Dict[key, Dict[value, type]]的字典。键和类型条目是字符串。如果可能,值会被转换为相应的类型。请注意,每个条目可能还有一个额外的‘key’条目,重复该键。
获取元数据
get_metadata(key)
根据键获取一个元数据条目值(作为字符串)。如果您希望将值转换为其类型(如果可能),请参见Model.get_metadata_casted
-
参数
key (
str
) – 你想要获取的元数据条目的键 -
返回类型
Optional
[str
] -
返回
元数据条目值的字符串表示形式,如果未找到条目则为None
get_metadata_casted
get_metadata_casted(key)
根据其键获取一个元数据条目,如果可能,将其转换为相应的类型
-
参数
key (
str
) – 你想要获取的元数据条目的键 -
返回类型
Optional
[str
] -
返回
元数据条目的值,转换为它的类型(如果不可能,将返回字符串表示)或如果未找到条目则为None
获取权重
get_weights(raise_on_error=False, force_download=False, extract_archive=False)
下载基础模型并返回本地存储的文件名。
-
参数
-
raise_on_error (bool ) – 如果为True,并且无法下载工件,则引发ValueError,否则在失败时返回None并输出日志警告。
-
force_download (bool ) – 如果为True,即使基础模型已经缓存,也会重新下载基础模型。
-
extract_archive (bool ) – 如果为True,下载的权重文件将尽可能被解压
-
-
返回类型
str
-
返回
本地存储的文件。
获取权重包
get_weights_package(return_path=False, raise_on_error=False, force_download=False, extract_archive=True)
将基础模型包下载到临时目录(解压文件),或返回本地存储的文件名列表。
-
参数
-
return_path (bool ) – 返回模型权重或文件名列表(可选)
-
True
- 将模型权重下载到一个临时目录中,并返回临时目录的路径。 -
False
- 返回本地存储的文件名列表。(默认)
-
-
raise_on_error (bool ) – 如果为True,并且无法下载工件,则引发ValueError,否则在失败时返回None并输出日志警告。
-
force_download (bool ) – 如果为True,即使工件已被缓存,基础工件也将被下载。
-
extract_archive (bool ) – 如果为True,下载的权重文件将尽可能被解压
-
-
返回类型
Union
[str
,List
[Path
],None
] -
返回
模型权重,或本地存储文件名的列表。 如果 raise_on_error=False,则在错误时返回 None。
id
属性ID
模型的ID(系统UUID)。
-
返回类型
str
-
返回
模型ID。
标签
属性标签
获取标签枚举作为字符串(标签)到整数(值)对的字典。
例如:
{
"background": 0,
"person": 1
}
-
返回类型
Dict
[str
,int
] -
返回
标签枚举。
名称
属性名称: str
模型的名称。
-
返回类型
str
-
返回
模型名称。
原始任务
属性 original_task: str
返回创建此模型的任务的ID。
-
返回类型
str
-
返回
任务ID (str)
项目
属性项目: str
模型的project ID。
-
返回类型
str
-
返回
项目ID (str).
发布
publish()
将模型设置为published
状态并供公众使用。如果模型的状态已经是published
,则此方法不执行任何操作。
-
返回类型
()
已发布
属性已发布
获取此模型的发布状态。
-
返回类型
bool
-
返回
报告混淆矩阵
report_confusion_matrix(title, series, matrix, iteration=None, xaxis=None, yaxis=None, xlabels=None, ylabels=None, yaxis_reversed=False, comment=None, extra_layout=None)
为了明确报告,绘制一个热图矩阵。
例如:
confusion = np.random.randint(10, size=(10, 10))
model.report_confusion_matrix("example confusion matrix", "ignored", iteration=1, matrix=confusion,
xaxis="title X", yaxis="title Y")
-
参数
-
title (str ) – 图表的标题(指标)。
-
series (str ) – 报告的混淆矩阵的系列名称(变体)。
-
matrix (numpy.ndarray ) – 一个热图矩阵(例如:混淆矩阵)
-
iteration (int ) – 报告的迭代/步骤。
-
xaxis (str ) – x轴标题。(可选)
-
yaxis (str ) – y轴标题。(可选)
-
xlabels (list ( str ) ) – 矩阵每列的标签。(可选)
-
ylabels (list ( str ) ) – 矩阵每行的标签。(可选)
-
yaxis_reversed (bool ) – 如果为 False,0,0 位于左下角。如果为 True,0,0 位于左上角
-
comment (str ) – 与图表一起显示的注释,位于标题下方。
-
extra_layout (dict ) – 用于布局配置的可选字典,直接传递给 plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/heatmap/ 示例:
extra_layout={'xaxis': {'type': 'date', 'range': ['2020-01-01', '2020-01-31']}}
-
report_histogram
report_histogram(title, series, values, iteration=None, labels=None, xlabels=None, xaxis=None, yaxis=None, mode=None, data_args=None, extra_layout=None)
对于显式报告,绘制一个(默认分组的)直方图。 请注意,此函数不会计算直方图, 它假设直方图已经在值中计算完成。
例如:
vector_series = np.random.randint(10, size=10).reshape(2,5)
model.report_histogram(title='histogram example', series='histogram series',
values=vector_series, iteration=0, labels=['A','B'], xaxis='X axis label', yaxis='Y axis label')
-
参数
-
title – 图表的标题(指标)。
-
series – 报告的直方图的系列名称(变体)。
-
values – 系列值。一个浮点数列表,或一个包含每个直方图条形数据的N维Numpy数组。
-
iteration – 报告的迭代/步骤。每个
iteration
都会创建另一个图表。 -
labels – 每个条形组的标签,用于创建图例,标注每个系列。(可选)
-
xlabels – 直方图中每个桶的每个条目的标签(向量),为x轴上的每个直方图条创建一组标签。(可选)
-
xaxis – x轴标题。(可选)
-
yaxis – y轴标题。(可选)
-
mode – 多直方图模式,堆叠 / 分组 / 相对。默认为‘分组’。
-
data_args – 可选的数据配置字典,直接传递给 plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/bar/ 示例:
data_args={'orientation': 'h', 'marker': {'color': 'blue'}}
-
extra_layout – 用于布局配置的可选字典,直接传递给 plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/bar/ 示例:
extra_layout={'xaxis': {'type': 'date', 'range': ['2020-01-01', '2020-01-31']}}
-
报告折线图
report_line_plot(title, series, xaxis, yaxis, mode='lines', iteration=None, reverse_xaxis=False, comment=None, extra_layout=None)
对于显式报告,将一个或多个系列绘制为线条。
-
参数
-
title (str ) – 图表的标题(指标)。
-
series (list ) – 所有系列数据,每个列表元素对应图中的一条线。
-
iteration (int ) – 报告的迭代/步骤。
-
xaxis (str ) – x轴标题。(可选)
-
yaxis (str ) – y轴标题。(可选)
-
mode (str ) – 线条图的类型。值为:
-
lines
(默认) -
markers
-
lines+markers
-
-
reverse_xaxis (bool) – 反转x轴。值为:
-
True
- x轴从高到低(反转)。 -
False
- x轴从低到高(未反转)。(默认)
-
-
comment (str ) – 与图表一起显示的注释,位于标题下方。
-
extra_layout (dict ) – 用于布局配置的可选字典,直接传递给 plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/scatter/ 示例:
extra_layout={'xaxis': {'type': 'date', 'range': ['2020-01-01', '2020-01-31']}}
-
报告矩阵
report_matrix(标题, 系列, 矩阵, 迭代=None, x轴=None, y轴=None, x标签=None, y标签=None, y轴反转=False, 额外布局=None)
为了明确报告,绘制一个混淆矩阵。
此方法与Model.report_confusion_matrix相同。
-
参数
-
title (str ) – 图表的标题(指标)。
-
series (str ) – 报告的混淆矩阵的系列名称(变体)。
-
matrix (numpy.ndarray ) – 一个热图矩阵(例如:混淆矩阵)
-
iteration (int ) – 报告的迭代/步骤。
-
xaxis (str ) – x轴标题。(可选)
-
yaxis (str ) – y轴标题。(可选)
-
xlabels (list ( str ) ) – 矩阵每列的标签。(可选)
-
ylabels (list ( str ) ) – 矩阵每行的标签。(可选)
-
yaxis_reversed (bool ) – 如果为False,0,0位于左下角。如果为True,0,0位于左上角
-
extra_layout (dict ) – 用于布局配置的可选字典,直接传递给 plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/heatmap/ 示例:
extra_layout={'xaxis': {'type': 'date', 'range': ['2020-01-01', '2020-01-31']}}
-
report_scalar
report_scalar(title, series, value, iteration)
为了明确报告,绘制一个标量系列。
-
参数
-
title (str ) – 图表的标题(指标)。通过每次调用此方法时使用相同的
title
,可以在同一图表上绘制多个标量系列。 -
series (str ) – 报告标量的系列名称(变体)。
-
value (float ) – 每次迭代要绘制的值。
-
iteration (int ) – 报告的迭代/步骤(报告时间序列的x轴)
-
-
返回类型
None
report_scatter2d
report_scatter2d(title, series, scatter, iteration=None, xaxis=None, yaxis=None, labels=None, mode='line', comment=None, extra_layout=None)
对于显式报告,报告一个2D散点图。
例如:
scatter2d = np.hstack((np.atleast_2d(np.arange(0, 10)).T, np.random.randint(10, size=(10, 1))))
model.report_scatter2d(title="example_scatter", series="series", iteration=0, scatter=scatter2d,
xaxis="title x", yaxis="title y")
通过将相同的title
和iteration
值传递给此方法,在同一图表上绘制多个2D散点系列:
scatter2d_1 = np.hstack((np.atleast_2d(np.arange(0, 10)).T, np.random.randint(10, size=(10, 1))))
model.report_scatter2d(title="example_scatter", series="series_1", iteration=1, scatter=scatter2d_1,
xaxis="title x", yaxis="title y")
scatter2d_2 = np.hstack((np.atleast_2d(np.arange(0, 10)).T, np.random.randint(10, size=(10, 1))))
model.report_scatter2d("example_scatter", "series_2", iteration=1, scatter=scatter2d_2,
xaxis="title x", yaxis="title y")
-
参数
-
title (str ) – 图表的标题(指标)。
-
series (str ) – 报告的散点图的系列名称(变体)。
-
scatter (list) – 散点数据。numpy.ndarray 或 (x,y) 对的列表:
-
iteration (int ) – 报告的迭代/步骤。
-
xaxis (str ) – x轴标题。(可选)
-
yaxis (str ) – y轴标题。(可选)
-
labels (list ( str ) ) – 分配给
scatter
参数的数据中每个点的标签。标签的顺序必须与数据的顺序相同。 -
mode (str ) – 散点图的类型。可选值为:
-
lines
-
markers
-
lines+markers
-
-
comment (str ) – 与图表一起显示的注释,位于标题下方。
-
extra_layout (dict ) – 用于布局配置的可选字典,直接传递给 plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/scatter/ 示例:
extra_layout={'xaxis': {'type': 'date', 'range': ['2020-01-01', '2020-01-31']}}
-
report_scatter3d
report_scatter3d(title, series, scatter, iteration=None, xaxis=None, yaxis=None, zaxis=None, labels=None, mode='markers', fill=False, comment=None, extra_layout=None)
为了明确报告,绘制一个3D散点图(带有标记)。
-
参数
-
title (str ) – 图表的标题(指标)。
-
series (str ) – 报告的散点图的系列名称(变体)。
-
list **] ** scatter (Union [ numpy.ndarray , ) – 散点数据。 (x,y,z)对的列表,系列列表 [[(x1,y1,z1)…]],或 numpy.ndarray
-
iteration (int ) – 报告的迭代/步骤。
-
xaxis (str ) – x轴标题。(可选)
-
yaxis (str ) – y轴标题。(可选)
-
zaxis (str ) – z轴标题。(可选)
-
labels (list ( str ) ) – 分配给
scatter
参数的数据中每个点的标签。标签的顺序必须与数据的顺序相同。 -
mode (str ) – 散点图的类型。值为:
lines
,markers
,lines+markers
。
例如:
scatter3d = np.random.randint(10, size=(10, 3))
model.report_scatter3d(title="example_scatter_3d", series="series_xyz", iteration=1, scatter=scatter3d,
xaxis="title x", yaxis="title y", zaxis="title z")-
fill (bool ) – 填充曲线下的区域。值为:
-
True
- 填充 -
False
- 不填充(默认)
-
-
comment (str ) – 与图表一起显示的注释,位于标题下方。
-
extra_layout (dict ) – 可选的布局配置字典,直接传递给plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/scatter3d/ 示例:
extra_layout={'xaxis': {'type': 'date', 'range': ['2020-01-01', '2020-01-31']}}
-
report_single_value
report_single_value(name, value)
报告单个值指标(例如,总实验准确率或mAP)
-
参数
-
name (
str
) – 指标的名称 -
value (
float
) – 指标的数值
-
-
返回类型
None
报告表面
report_surface(title, series, matrix, iteration=None, xaxis=None, yaxis=None, zaxis=None, xlabels=None, ylabels=None, camera=None, comment=None, extra_layout=None)
对于显式报告,报告一个3D表面图。
此方法绘制与Model.report_confusion_matrix相同的数据,但将数据呈现为表面图而非混淆矩阵。
surface_matrix = np.random.randint(10, size=(10, 10))
model.report_surface("example surface", "series", iteration=0, matrix=surface_matrix,
xaxis="title X", yaxis="title Y", zaxis="title Z")
-
参数
-
title (str ) – 图表的标题(指标)。
-
series (str ) – 报告表面的系列名称(变体)。
-
matrix (numpy.ndarray ) – 一个热图矩阵(例如:混淆矩阵)
-
iteration (int ) – 报告的迭代/步骤。
-
xaxis (str ) – x轴标题。(可选)
-
yaxis (str ) – y轴标题。(可选)
-
zaxis (str ) – z轴标题。(可选)
-
xlabels (list ( str ) ) – 矩阵每列的标签。(可选)
-
ylabels (list ( str ) ) – 矩阵每行的标签。(可选)
-
camera (list ( float ) ) – 表示相机位置的X,Y,Z坐标。默认值为
(1,1,1)
。 -
comment (str ) – 与图表一起显示的注释,位于标题下方。
-
extra_layout (dict ) – 可选的布局配置字典,直接传递给plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/surface/ 示例:
extra_layout={'xaxis': {'type': 'date', 'range': ['2020-01-01', '2020-01-31']}}
-
报告表
report_table(title, series, iteration=None, table_plot=None, csv=None, url=None, extra_layout=None)
对于显式报告,报告一个表格图。
必须提供以下参数中的一个且仅一个。
-
table_plot
- Pandas DataFrame 或作为行列表的表格(列表) -
csv
- CSV 文件 -
url
- CSV文件的URL
例如:
df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
'num_wings': [2, 0, 0, 0],
'num_specimen_seen': [10, 2, 1, 8]},
index=['falcon', 'dog', 'spider', 'fish'])
model.report_table(title='table example',series='pandas DataFrame',iteration=0,table_plot=df)
-
参数
-
title – 表格的标题(指标)。
-
series – 报告表的系列名称(变体)。
-
iteration – 报告的迭代/步骤。
-
table_plot – 输出表格绘图对象
-
csv – 本地csv文件的路径
-
url – 指向csv文件位置的URL。
-
extra_layout – 用于布局配置的可选字典,直接传递给 plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/layout/ 示例:
extra_layout={'height': 600}
-
报告向量
report_vector(标题, 系列, 值, 迭代=None, 标签=None, x轴标签=None, x轴=None, y轴=None, 模式=None, 额外布局=None)
对于显式报告,将向量绘制为(默认堆叠)直方图。
例如:
vector_series = np.random.randint(10, size=10).reshape(2,5)
model.report_vector(title='vector example', series='vector series', values=vector_series, iteration=0,
labels=['A','B'], xaxis='X axis label', yaxis='Y axis label')
-
参数
-
title – 图表的标题(指标)。
-
series – 报告的直方图的系列名称(变体)。
-
values – 系列值。一个浮点数列表,或一个包含每个直方图条形数据的N维Numpy数组。
-
iteration – 报告的迭代/步骤。每个
iteration
都会创建另一个图表。 -
labels – 每个条形组的标签,用于创建图例,标注每个系列。(可选)
-
xlabels – 直方图中每个桶的每个条目的标签(向量),为x轴上的每个直方图条创建一组标签。(可选)
-
xaxis – x轴标题。(可选)
-
yaxis – y轴标题。(可选)
-
mode – 多直方图模式,堆叠 / 分组 / 相对。默认为‘分组’。
-
extra_layout – 用于布局配置的可选字典,直接传递给plotly 查看支持的配置的完整详细信息:https://plotly.com/javascript/reference/layout/ 示例:
extra_layout={'showlegend': False, 'plot_bgcolor': 'yellow'}
-
设置所有元数据
set_all_metadata(metadata, replace=True)
根据给定的参数设置元数据。允许替换所有条目或更新当前条目。
-
参数
-
metadata (
Dict
[str
,Dict
[str
,str
]]) – 一个格式为 Dict[key, Dict[value, type]] 的字典,表示您要设置的元数据 -
replace (
bool
) – 如果为True,则用metadata参数中的条目替换所有元数据。如果为False,则保留旧元数据并用metadata参数中的条目更新它(添加或更改)。
-
-
返回类型
bool
-
返回
如果设置了元数据则为True,否则为False
OutputModel.set_default_upload_uri
classmethod set_default_upload_uri(output_uri)
为所有OutputModels设置默认的上传URI
-
参数
output_uri (
Optional
[str
]) – 用于上传模型的URL。示例: https://demofiles.demo.clear.ml, s3://bucket/, gs://bucket/, azure://bucket/, file:///mnt/shared/nfs -
返回类型
None
set_metadata
set_metadata(key, value, v_type=None)
设置一个元数据条目。所有参数必须是字符串或可转换为字符串。
-
参数
-
key (
str
) – 元数据条目的键 -
value (
str
) – 元数据条目的值 -
v_type (
Optional
[str
]) – 元数据条目的类型
-
-
返回类型
bool
-
返回
如果设置了元数据则为True,否则为False
设置上传目标
set_upload_destination(uri)
设置上传模型权重文件的存储目标的URI。 支持的存储目标包括S3、Google云存储和文件位置。
使用此方法,文件上传是分开的,然后在模型对象中存储每个文件的链接。
对于需要凭证的存储,凭证存储在ClearML配置文件中,~/clearml.conf。
-
参数
uri (str ) – 上传存储目标的URI。
例如:
-
s3://bucket/directory/
-
file:///tmp/debug/
-
-
返回布尔值
存储目标模式是否支持的状态。
-
True
- 支持存储目标方案。 -
False
- 不支持存储目标方案。
-
-
返回类型
None
系统标签
属性 system_tags: List[str]
描述模型的系统标签列表。
-
返回类型
List
[str
] -
返回
标签列表。
标签
属性标签: List[str]
描述模型的标签列表。
-
返回类型
List
[str
] -
返回
标签列表。