数据集版本
类 datasetversion.DatasetVersion()
DatasetVersion
表示数据集中的一个特定版本。
不要直接实例化。 请使用DatasetVersion.get_version方法代替。
批量上下文
class BulkContext
一个上下文管理器,用于批量修改框架(即添加/更新/删除)。
使用 DatasetVersion.get_bulk_context
来获取。
批量上下文允许通过一次添加/更新/删除帧来修改版本,但实际的更新请求将批量进行。更新请求(刷新)将在每flush_threshold
次更新或__exit__
时发生。
创建批量上下文以自动刷新帧
-
参数
-
dv (
DatasetVersion
) – 要使用的DatasetVersion对象 -
flush_threshold (
Optional
[int
]) – 如果提供,每X帧刷新一次 -
log (
Optional
[Logger
]) – 可选的,提供外部日志记录器 -
refresh_version_stats (
Optional
[bool
]) – 自动刷新版本统计信息(默认值:True) -
auto_upload_destination (
Optional
[str
]) – 如果指定了任何由SingleFrame/FrameGroup链接的本地文件,将自动上传到目标存储。 -
local_dataset_root_path (
Union
[str
,Path
,None
]) – 如果提供了auto_upload_destination
,则必须提供。 它应指向所有本地源文件的公共文件夹 -
allow_update (
bool
) – 如果为False(默认值),所有帧操作将使用“添加”操作,而“更新”将不会被使用(即,即使使用BulkContext.update()调用收集的帧也将被添加,而不是更新)。这是一个高级设置,只有在您理解使用更新的限制时才进行更改。请注意,当使用更新时,提供的帧数据将与现有的索引帧数据合并 - 这意味着在使用更新操作时,帧字段不能被移除。
-
添加框架
BulkContext.add_frame(frame, warn_on_duplicate_frames=False)
注意!如果帧已经包含frame.id字段,它们将更新(覆盖)现有的帧。 如果未提供,frame.id将基于源URI生成。 如果应上传本地文件但之前已经上传过,将重用该文件的现有URI,否则将上传该文件。
仅在版本仍处于草稿(可写)模式时可用
-
参数
-
frame (DatasetVersion.Frame ) – 要添加到版本中的帧。
-
warn_on_duplicate_frames (
Optional
[bool
]) – 如果为True,当添加一个ID已经存在于该实例中的帧时,会发出警告(默认为False)
-
-
返回类型
None
删除帧
BulkContext.delete_frame(frame, delete_sources=False)
从当前的DatasetVersion
中删除一个帧。
框架可以由一个ID字符串或一个DatasetVersion.Frame
对象表示。框架通过其ID删除,所有其他框架属性(如果存在)将被忽略。
仅当版本仍处于草稿(可写)模式时可用。
-
参数
-
frame (
Union
[FrameGroup
,SingleFrame
,str
,ForwardRef
]) – 要删除的帧(帧对象或ID字符串) -
delete_sources (
bool
) – 删除与数据集中已删除帧相关联的源。 支持的源位置包括:s3、gs 和 azure。如果无法与云提供商建立连接或源删除失败,操作将中止。
-
-
返回类型
None
刷新
BulkContext.flush()
发送任何未完成的版本更改。
使用此BulkContext
进行的任何更新都会发送到服务器。
-
返回类型
None
更新框架
BulkContext.update_frame(frame)
在当前DatasetVersion
中更新现有的帧。
通过其ID找到帧,并更改其属性以匹配传入的帧对象的属性。如果帧之前被添加过(例如通过update_frame
),或者它们存在于父版本中,则帧存在于版本中。如果帧对象没有ID,则创建一个新帧。
仅当版本仍处于草稿(可写)模式时可用。
-
参数
frame (DatasetVersion.Frame ) – 要更新的帧。
-
返回类型
None
版本ID
属性 version_id
此特定数据集/版本的版本ID字符串
-
返回类型
str
版本名称
属性 version_name
数据集版本名称,不一定唯一
-
返回类型
str
数据集ID
属性 dataset_id
此特定数据集的数据集ID字符串
-
返回类型
str
数据集名称
属性 dataset_name
数据集名称,必须是一个唯一的名称
-
返回类型
str
草稿
属性草案
数据集/版本的草稿标志,即此版本是否仍可写入或已锁定且无法更改。
-
返回类型
bool
最后更新
属性 last_updated
返回数据集版本中最后更新帧的时间戳
-
返回类型
datetime
评论
属性注释
返回特定数据集版本的字符串注释
-
返回类型
str
DatasetVersion.create_new_dataset
classmethod create_new_dataset(dataset_name=None, description=None, tags=None, raise_if_exists=False, dataset_project=None)
在系统中创建一个新的数据集,并为其返回一个Dataset
对象。
-
参数
-
dataset_name (str ) – 新数据集的名称。
-
描述 (str ) – 用于描述数据集的自由文本。
-
标签 (列表 ) – 用于分类数据集的标签(短字符串)列表。
-
raise_if_exists (bool ) – 如果为False(默认值)并且存在名为
dataset_name
的数据集,则返回现有的Dataset
。如果为True并且存在名为dataset_name
的数据集,则引发ValueError
异常。 -
dataset_project (str) – 新创建数据集的项目名称。
-
-
返回类型
-
返回
为新创建的数据集创建一个新的
Dataset
对象。
DatasetVersion.get_current
classmethod get_current(dataset_id=None, dataset_name=None, auto_upload_destination=None, local_dataset_root_path=None, dataset_project=None)
返回当前可写版本的DatasetVersion
对象
-
参数
-
dataset_id (str ) – 要检索版本的数据集的ID。
-
dataset_name (str ) – 要检索版本的数据集名称。
-
auto_upload_destination (str ) – 如果指定了任何由SingleFrame/FrameGroup链接的本地文件,将自动上传到目标存储。
-
路径 **] ** local_dataset_root_path (联合 [ 字符串 , ) – 如果提供了
auto_upload_destination
,则为必需。 它应指向所有本地源文件的公共文件夹 -
dataset_project (
Optional
[str
]) – 要检索的数据集的项目。 -
local_dataset_root_path (可选 [ 联合 [ str *, * pathlib2.Path ] ] ) –
-
-
返回类型
ForwardRef
-
返回
DatasetVersion
对象表示选定的版本。
dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
DatasetVersion.remove_version
classmethod remove_version(dataset_id=None, dataset_name=None, version_id=None, version_name=None, force=False, dataset_project=None)
从系统中移除数据集的版本。
dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
version_id 和 version_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
-
参数
-
dataset_id (str ) – 要删除的数据集的ID。
-
dataset_name (str ) – 要删除的数据集的名称。
-
version_id (str ) – 要删除的版本的ID。
-
version_name (str ) – 要删除的版本名称。
-
force (bool ) – 如果为
True
,即使版本已发布也会删除。 默认值:False
-
dataset_project (str ) – 要删除的数据集的项目。
-
-
返回类型
None
DatasetVersion.get_version
classmethod get_version(dataset_id=None, dataset_name=None, version_id=None, version_name=None, auto_upload_destination=None, local_dataset_root_path=None, raise_on_multiple=False, dataset_project=None)
返回特定版本的DatasetVersion
对象
如果没有提供版本名称/ID,则返回数据集的当前版本。
dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
-
参数
-
dataset_id (str ) – 要检索版本的数据集的ID。
-
dataset_name (str ) – 要检索版本的数据集名称。
-
version_id (str ) – [可选] 要检索的版本的ID。
-
version_name (str ) – [可选] 要检索的版本名称。
-
auto_upload_destination (str ) – 如果指定了任何由SingleFrame/FrameGroup链接的本地文件,将自动上传到目标存储。
-
路径 **] ** local_dataset_root_path (联合 [ 字符串 , ) – 如果提供了
auto_upload_destination
,则为必需。 它应指向所有本地源文件的公共文件夹 -
raise_on_multiple (bool ) – 如果找到多个版本,则引发错误
-
dataset_project (str ) – 要检索版本的数据集所属的项目。
-
local_dataset_root_path (可选 [ 联合 [ str *, * pathlib2.Path ] ] ) –
-
-
返回类型
ForwardRef
-
返回
DatasetVersion
对象表示选定的版本。
DatasetVersion.get_single_frame
classmethod get_single_frame(frame_id, dataset_id=None, dataset_name=None, version_id=None, version_name=None, dataset_project=None)
返回一个具有请求的frame_id(UUID)的SingleFrame
/ FrameGroup
对象,来自特定的数据集版本
-
参数
-
frame_id (str ) – 请求的帧ID的UUID
-
dataset_id (str ) – 要检索版本的数据集的ID。
-
dataset_name (str ) – 要检索版本的数据集名称。
-
version_id (str ) – 要检索的版本的ID。
-
version_name (str ) – 要检索的版本名称。
-
dataset_project (str ) – 要检索版本的数据集所属的项目。
-
-
返回类型
Union
[FrameGroup
,SingleFrame
] -
返回
表示请求帧的SingleFrame / FrameGroup对象
dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
DatasetVersion.get_frames_by_source
classmethod get_frames_by_source(source_uri, dataset_id=None, dataset_name=None, version_id=None, version_name=None, dataset_project=None)
返回一个包含特定数据集版本中请求的source_uri模式的SingleFrame
/ FrameGroup
对象列表
-
参数
-
source_uri (str ) – 源URI匹配模式。 示例:'/home/folder/' 或 '/folder/*' 或 'https://domain.com/folder/*’ 或 's3://bucket/folder/*' 等。
-
dataset_id (str ) – 要检索版本的数据集的ID。
-
dataset_name (str ) – 要检索版本的数据集名称。
-
version_id (str ) – 要检索的版本的ID。
-
version_name (str ) – 要检索的版本名称。
-
dataset_project (str ) – 要检索版本的数据集所属的项目。
-
-
返回类型
List
[Union
[SingleFrame
,FrameGroup
]] -
返回
表示请求帧的SingleFrame / FrameGroup对象列表
dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
DatasetVersion.get_frames_by_ids
classmethod get_frames_by_ids(frame_ids, projection=None, dataset_id=None, dataset_name=None, version_id=None, version_name=None, dataset_project=None)
返回一个包含从特定数据集版本中请求的帧ID的SingleFrame
/ FrameGroup
对象列表
从版本3.8开始,不推荐使用DatasetVersion.get_frames_by_ids,并将在2023年第四季度之前移除,转而使用实例方法调用dataset_version.get_frames_by_ids。
-
参数
-
frame_ids (
Collection
[str
]) – 一组帧ID字符串的集合。 -
projection (
Optional
[Collection
[str
]]) – 用于选择将返回帧的哪些部分。 每个字符串代表一个字段或子字段(使用点分隔符号)。 为了指定特定的数组元素,请使用数组索引作为字段名称。 要指定所有数组元素,请使用‘*’。 要查看支持的投影字段,请参阅backend_api.services.frames.Frame中的模式。 如果设置了此参数,迭代器返回的值将是表示每个帧的字典
例如:
dataview.get_iterator(projection=['id', 'dataset.id', 'sources'])
# will return an iterator that yields dictionaries with the following fields:
# {
# 'id': '514504adbb6a91620eefa3e21ecfcc31',
# 'dataset': {
# 'id': 'df3638ec95454589bf86ba97f344f697'
# },
# 'sources': [
# {
# 'id': 'Frame',
# 'uri': 'https://clearml-public.s3.amazonaws.com/datasets/food_dataset/pizza/3724187.jpg',
# 'timestamp': 0,
# 'preview': {
# 'uri': 'https://clearml-public.s3.amazonaws.com/datasets/food_dataset/pizza/3724187.jpg',
# 'timestamp': 0
# }
# }
# ]
# }-
dataset_id (str ) – 要检索版本的数据集的ID。
-
dataset_name (str ) – 要检索版本的数据集名称。
-
version_id (str ) – 要检索的版本的ID。
-
version_name (str ) – 要检索的版本名称。
-
dataset_project (str ) – 要检索版本的数据集所属的项目。
info当将此方法作为实例方法调用时,不需要提供 dataset_id、dataset_name、dataset_project、version_id 和 version_name。
-
-
返回类型
Union
[List
[Union
[SingleFrame
,FrameGroup
]],List
[dict
]] -
返回
一个包含SingleFrame / FrameGroup对象的列表,或一个表示请求帧的字典列表。
infodataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
DatasetVersion.create_snapshot
classmethod create_snapshot(version_name=None, version_id=None, dataset_name=None, dataset_id=None, publish_name=None, publish_comment=None, publish_metadata=None, child_name=None, child_comment=None, child_metadata=None, dataset_project=None)
发布指定版本并创建草稿子版本
-
参数
-
version_name (str ) – 快照的草稿版本名称。
-
version_id (str ) – 快照的草稿版本的ID。
-
dataset_name (str ) – 数据集的名称。
-
dataset_id (str ) – 要在其中创建版本的数据集的ID。
-
publish_name (str ) – 发布版本的新名称。默认值为‘snapshot
’。 -
publish_comment (str ) – 发布版本的新评论。默认值为 ‘published at
by ’. -
publish_metadata (dict ) – 用户指定的发布版本的元数据对象。 键不能包含‘$’和‘.’。
-
child_name (str ) – 子版本的名称。如果未提供,则使用父版本的名称。
-
child_comment (str ) – 子版本的注释。
-
child_metadata (dict ) – 用户指定的子版本元数据对象。 键不能包含‘$’和‘.’。
-
dataset_project (str ) – 数据集的项目
-
-
返回类型
ForwardRef
-
返回
DatasetVersion
对象表示新的草稿子版本。
如果没有提供version_name/id,数据集的当前版本是快照版本。
dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
version_id 和 version_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
DatasetVersion.create_version
classmethod create_version(version_name, description=None, dataset_id=None, dataset_name=None, parent_version_ids=None, parent_version_names=None, raise_if_exists=False, auto_upload_destination=None, local_dataset_root_path=None, dataset_project=None)
在数据集中创建一个具有特定名称的新版本。
如果已经存在一个具有该名称的版本并且处于草稿模式(即可写),则返回该版本,除非raise_if_exists
为True
,则抛出ValueError
-
参数
-
version_name (str ) – 新版本的名称。
-
描述 (str ) – 新数据集版本的描述
-
dataset_id (str ) – 要在其中创建版本的数据集的ID。
-
dataset_name (str ) – 要在其中创建版本的数据集的名称。
-
parent_version_ids (列表 ) – 新版本父版本的ID列表。所有ID必须是此数据集中现有版本的ID。目前,仅支持单个父版本。这是一个为未来兼容性准备的列表。
-
parent_version_names (列表 ) – 新版本父级名称的列表。所有名称必须是此数据集中现有版本的名称。目前,仅支持单个父级版本。这是一个为了未来兼容性的列表。
-
raise_if_exists (bool ) – 如果为
True
并且名为name
的版本已经存在,则抛出ValueError
。如果为False
并且该名称的版本已经存在, 则返回它。 -
auto_upload_destination (str ) – 如果指定了任何由SingleFrame/FrameGroup链接的本地文件,将自动上传到目标存储。
-
路径 **] ** local_dataset_root_path (联合 [ 字符串 , ) – 如果提供了
auto_upload_destination
,则为必需。 它应指向所有本地源文件的公共文件夹 -
dataset_project (str ) – 要在其中创建版本的数据集项目。
-
local_dataset_root_path (可选 [ 联合 [ str *, * pathlib2.Path ] ] ) –
-
-
返回类型
ForwardRef
-
返回
新的
DatasetVersion
对象表示新版本。
dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。
DatasetVersion.get_versions
classmethod get_versions(dataset_name=None, dataset_id=None, only_published=False, only_draft=False, dataset_project=None)
返回数据集中所有版本的列表。
-
参数
-
dataset_name (str ) – 数据集的名称。如果存在多个具有此名称的数据集,则任意选择一个。
-
dataset_id (str ) – 要列出的数据集的ID。
-
only_published (bool ) – 如果为
True
,则仅返回已发布的版本。 如果为False
,则返回所有版本。 -
only_draft (bool ) – 如果为
True
,则仅返回草稿(可写)版本。 如果为False
,则返回所有版本。 -
dataset_project (
Optional
[str
]) – 要列出的数据集的项目
-
-
返回类型
List
[ForwardRef
] -
返回
一个
DatasetVersion
的列表,每个数据集版本对应一个。 版本按更新时间排序,从最新更新的([0])到最旧的
DatasetVersion.get_datasets
classmethod get_datasets(tags=None)
返回系统中所有数据集的列表,按创建时间排序。
-
参数
标签 (列表 ) – 根据请求的标签列表(字符串)进行过滤。要排除一个标签,请在标签前添加“-”前缀。示例:
["best", "-debug"]
。 默认行为是使用逻辑“OR”运算符连接所有标签。 要使用逻辑“AND”运算符连接所有标签,请使用“__$all”作为第一个字符串,例如:["__$all", "best", "experiment", "ever"]
要使用AND连接所有标签,但排除某个标签,请在排除的标签前使用“__$not”,例如:
["__$all", "best", "experiment", "ever", "__$not", "internal", "__$not", "test"]
“OR”和“AND”运算符适用于其后所有标签,直到指定另一个运算符为止。 NOT运算符仅适用于紧随其后的标签。 例如:
["__$all", "a", "b", "c", "__$or", "d", "__$not", "e", "__$and", "__$or" "f", "g"]
这个示例表示 (“a” AND “b” AND “c” AND (“d” OR NOT “e”) AND (“f” OR “g”))。 更多信息请参见 https://clear.ml/docs/latest/docs/clearml_sdk/task_sdk/#tag-filters。
-
返回类型
List
[Dataset
] -
返回
一个
datasets.Dataset
的列表,每个数据集一个。 数据集按创建时间排序,从最早到最新
get_iterator
get_iterator(projection=None)
获取此版本的迭代器。
-
参数
projection (可选 [ 序列 [ 字符串 ] ] ) – 用于选择将返回帧的哪些部分。 每个字符串代表一个字段或子字段(使用点分隔符号)。为了指定特定的数组元素,使用数组索引作为字段名。为了指定所有数组元素,使用‘*’。 如果设置了此参数,迭代器返回的值将是表示每个帧的字典
例如:
version.get_iterator(projection=['id', 'dataset.id', 'sources'])
# will return an iterator that yields dictionaries with the following fields:
# {
# 'id': '514504adbb6a91620eefa3e21ecfcc31',
# 'dataset': {
# 'id': 'df3638ec95454589bf86ba97f344f697'
# },
# 'sources': [
# {
# 'id': 'Frame',
# 'uri': 'https://clearml-public.s3.amazonaws.com/datasets/food_dataset/pizza/3724187.jpg',
# 'timestamp': 0,
# 'preview': {
# 'uri': 'https://clearml-public.s3.amazonaws.com/datasets/food_dataset/pizza/3724187.jpg',
# 'timestamp': 0
# }
# }
# ]
# } -
返回类型
生成器[联合[“数据集版本.帧”, 字典]]
-
返回
所有版本帧的迭代器。
添加帧
add_frames(frames, warn_on_duplicate_frames=False, batch_size=1000, refresh_version_stats=True, auto_upload_destination=None, local_dataset_root_path=None, force_upload=False, progress_report=1, register_on_upload_failure=False, upload_retries=5, src_to_dst_mapping=None, unregister_on_upload_fail=True, max_request_size_mb=None)
向此DatasetVersion
添加帧。
注意!如果帧已经包含frame.id字段,它们将更新(覆盖)现有帧。
如果未提供,frame.id将基于源URI生成。
如果应上传本地文件但之前已经上传过,则将重用该文件的现有URI,否则将上传该文件。
仅在版本仍处于草稿(可写)模式时可用
-
参数
-
frames (列表 ) – 要保存的新帧的列表。
-
warn_on_duplicate_frames (bool ) – 如果为True,当添加一个ID已经存在于该实例中的帧时,会发出警告(默认为False)
-
batch_size (
int
) – 单个添加请求中的帧数(默认值:1000), batch_size 影响上传速度与可靠性。它不限制每次调用的帧数,在大多数情况下无需更改。 -
refresh_version_stats (
Optional
[bool
]) – 在添加帧后自动调用commit_version
以刷新此版本的统计信息。 -
auto_upload_destination (
Optional
[str
]) – 如果指定了任何由SingleFrame/FrameGroup链接的本地文件,将自动上传到目标存储。 示例:'s3://bucket/datasets/', 'gs://bucket/dataset', 'azure://bucket/dataset', 'http://clearml-server/bucket/dataset’
info备注:
- The uploaded files will keep the same structure inside the designation storage under dataset_id/version_name.version_id/ folders
- If a file content hash is already registered, it will automatically link to the existing remote file instead of re-uploading the local copy
- Inside the dataset/version folder the files are stored in the same path as on the local storage, relative to the provided local_root_dataset_folder
-
local_dataset_root_path (
Union
[str
,Path
,None
]) – 如果提供了auto_upload_destination,则必须提供。 与src_to_dst_mapping互斥。它应指向所有本地源文件的公共文件夹。 此根文件夹用于检测单个源文件的相对路径, 以便上传到远程存储。 示例:'auto_upload_destination='s3://bucket/datasets/', local_dataset_root_path='/home/user/data/'
将确保文件‘/home/user/data/images/01/1.jpg’将被上传到: ‘s3://bucket/datasets/dataset_id/version_id/images/01/1.jpg’ -
force_upload (
Optional
[bool
]) – 如果为True并且提供了auto_upload_destination
,将强制上传帧 -
progress_report (
Optional
[int
]) – 每上传/注册progress_report
帧时上传的报告帧,以batch_size
粒度为单位。(默认:每批次报告一次) -
register_on_upload_failure – 如果为True,即使上传失败也会注册帧
-
upload_retries (
int
) – 在上传失败的情况下,应重试上传帧的次数,然后才将该帧标记为上传失败并继续上传其他帧 -
src_to_dst_mapping (
Optional
[Dict
[str
,str
]]) – 一个将帧的源映射到上传目的地的字典。 在字典中找到的每个源将被上传到相应的目的地。 与auto_upload_destination互斥 -
unregister_on_upload_fail (
bool
) – 一个布尔值,控制是否删除上传失败的帧。 -
max_request_size_mb (
Optional
[float
]) – 添加帧时发送到服务器的最大请求大小,以兆字节为单位。 如果请求的大小超过此值,它将被分解为多个请求。 如果单个帧的大小超过此值, 则不会添加该帧,并返回错误消息。
-
-
返回类型
List
[Dict
] -
返回
包含未能上传或注册的帧的列表。列表中的每个条目是一个包含以下键值对的字典:
- ‘frame’ - 未能添加的帧
- ‘error’ - 描述错误的字符串
- ‘error_type’ - 可以是‘upload’、‘validation’或‘register’。指示错误发生的位置
- ‘error’ - 描述错误的字符串
- ‘frame’ - 未能添加的帧
更新帧
update_frames(frames, batch_size=1000, refresh_version_stats=True, without_fields=None)
更新此DatasetVersion
中的现有帧。
通过ID查找每个帧,并更改其属性以匹配传入的帧对象。如果帧之前被添加过(例如通过update_frames
),或者它们存在于父版本中,则帧存在于版本中。
如果帧对象没有ID,则创建一个新帧。
仅在版本仍处于草稿(可写)模式时可用
-
参数
-
frames (列表 ) – 要更新的帧列表。
-
batch_size (int ) – 单次更新请求中的帧数(默认值:1000) batch_size 影响上传速度与可靠性。它不限制每次调用的帧数,在大多数情况下无需更改。
-
refresh_version_stats (
Optional
[bool
]) – 在更新帧后自动调用commit_version
以刷新此版本的统计信息。 -
without_fields (
Optional
[List
[str
]]) – 发送更新调用时,要从帧对象中过滤掉的字段列表。 这些字段对应于allegroai.backend_api.services.datasets.Frame中的字段。 当提供此列表时,调用将生成更新操作,否则将使用添加操作(参见add_frames
)。在此参数中使用非None值(如[]或False)以指定更新操作而不提供任何字段。
info在使用更新操作时,移除的框架字段将被忽略(例如,更新操作不能用于从元结构中移除字段)。
例如,为了避免发送元数据:
dataset_version.update_frames(frames, without_fields=["meta"])
-
-
返回类型
None
delete_frames
delete_frames(frames, batch_size=1000, refresh_version_stats=True, delete_sources=False)
从这个DatasetVersion
中删除帧。
帧可以通过ID字符串或DatasetVersion.Frame
对象表示。帧通过其ID删除,所有其他帧属性(如果存在)将被忽略。
仅当版本仍处于草稿(可写)模式时可用。
-
参数
-
frames (
Sequence
[Union
[FrameGroup
,SingleFrame
,dict
,ForwardRef
]]) – 一个帧对象或帧ID(字符串)的列表。 -
batch_size (int ) – 单个删除请求中的帧ID数量(默认值:1000) batch_size 影响上传速度与可靠性。它不限制每次调用的帧数,在大多数情况下无需更改。
-
refresh_version_stats (
Optional
[bool
]) – 在删除帧后自动调用commit_version
以刷新此版本的统计信息。 -
delete_sources (
bool
) – 删除与数据集中已删除帧相关联的源。 支持的源位置包括:s3、gs 和 azure。如果无法与云提供商建立连接或源删除失败,操作将中止。
-
-
返回类型
None
获取批量上下文
get_bulk_context(flush_threshold=None, log=None, refresh_version_stats=True, auto_upload_destination=None, local_dataset_root_path=None, allow_update=False)
获取一个上下文管理器,用于对此版本进行批量更新。
批量上下文允许在此版本上批量添加/编辑/删除数据帧,而不是逐个进行。
每个DatasetVersion只能有一个BulkContext。第二次调用get_bulk_context将返回相同的对象。
仅当版本仍处于草稿(可写)模式时可用。
-
参数
-
flush_threshold (int ) – 每
flush_threshold
次更新后提交更新到帧。一次更新是对BulkContext.add_frame
、BulkContext.update_frame
或BulkContext.delete_frame
之一的调用。 -
log (
Optional
[Logger
]) – 用于记录日志的上下文日志对象。默认为datasetversion模块的日志记录器。 -
refresh_version_stats (
Optional
[bool
]) – 在删除帧后自动调用commit_version
以刷新此版本的统计信息。 -
auto_upload_destination (
Optional
[str
]) – 如果指定了任何由SingleFrame/FrameGroup链接的本地文件,将自动上传到目标存储。 示例:'s3://bucket/datasets/', 'gs://bucket/dataset', 'azure://bucket/dataset', 'http://clearml-server/bucket/dataset’
info备注:
- The uploaded files will keep the same structure inside the designation storage under dataset_id/version_name.version_id/ folders
- If a file content hash is already registered, it will automatically link to the existing remote file instead of re-uploading the local copy
- Inside the dataset/version folder the files are stored in the same path as on the local storage, relative to the provided local_root_dataset_folder
-
local_dataset_root_path (
Union
[str
,Path
,None
]) – 如果提供了auto_upload_destination
,则必须提供。 它应指向所有本地源文件的公共文件夹, 此根文件夹用于检测单个源文件的相对路径, 以便上传到远程存储。 示例:'auto_upload_destination='s3://bucket/datasets/', local_dataset_root_path='/home/user/data/'
将确保文件‘/home/user/data/images/01/1.jpg’将被上传到: ‘s3://bucket/datasets/dataset_id/version_id/images/01/1.jpg’ -
allow_update (
bool
) – 如果为False(默认值),所有帧操作将使用“添加”操作,而“更新”将不会被使用(即,即使使用BulkContext.update()调用收集的帧也将被添加,而不是更新)。这是一个高级设置,只有在您理解使用更新的限制时才进行更改。请注意,当使用更新时,提供的帧数据将与现有的索引帧数据合并 - 这意味着在使用更新操作时,帧字段不能被移除。
-
-
返回类型
ForwardRef
-
返回
用于此
DatasetVersion
的批量更新上下文管理器
刷新
flush(refresh_version_stats=True)
发送任何未完成的版本更改。
如果通过get_bulk_context
获取了一个BulkContext
,那么使用它进行的任何更新都会发送到服务器。如果没有,则此操作无效。
-
参数
refresh_version_stats (
Optional
[bool
]) – 自动调用commit_version
以刷新此版本的统计信息。 -
返回类型
None
提交版本
**commit_version(kwargs)
提交此草稿 DatasetVersion
,包含到目前为止所做的所有更改。
提交版本会将其所做的更改与父版本合并。 对该版本的进一步更改仍然是可能的。 这是在发布版本之前必须完成的步骤。
这是一个阻塞方法,可能需要一些时间才能完成。
-
返回类型
CallResult
-
参数
kwargs (任意 ) –
发布版本
publish_version()
发布此 DatasetVersion
。
发布版本后,它不再是草稿版本,并且不允许对该版本进行进一步的更改。
-
返回类型
bool
-
返回
True
如果成功,False
否则。
获取统计信息
get_stats()
返回此版本的统计信息
-
返回类型
Statistics
获取父级
get_parent()
返回此版本的父版本的ID
-
返回类型
str
获取元数据
get_metadata()
-
返回类型
dict
-
返回
返回为特定数据集版本存储的用户定义值的元数据(字典)
set_metadata
设置元数据(metadata)
存储特定数据集版本的用户定义值的元数据(字典)
-
参数
metadata (dict ) – 键/值字典(支持嵌套字典)
-
返回类型
bool
-
返回
如果成功则为真(锁定/发布的版本无法更改版本元数据)
设置版本名称
set_version_name(name)
为这个数据集版本设置一个新名称
-
参数
name (
str
) – 版本的新名称 -
返回类型
bool
-
返回
如果成功则为真
设置掩码标签
设置掩码标签(mask_value_label_mapping)
存储一个全局的(数据集版本范围内的)查找表,用于将每个像素的掩码值映射到标签。 例如:
{
(0,0,0): ["background"],
(1,1,1): ["person", "sitting"],
(2,2,2): ["cat"],
}
像素掩码标签查找作为数据集版本元数据的一个属性存储。
具体来说:dataset.get_metadata()['mask_labels'] = {...}
-
参数
mask_value_label_mapping (dict ) – 键/值字典。 键是一个整数元组,值是一个字符串列表/元组
-
返回类型
bool
-
返回
如果成功则为真(锁定/发布的版本无法更改版本元数据)
获取掩码标签
get_masks_labels()
获取每个像素掩码值到标签的全局(数据集版本范围内)查找表。 例如:
{
(0,0,0): ["background"],
(1,1,1): ["person", "sitting"],
(2,2,2): ["cat"],
}
像素掩码标签查找作为数据集版本元数据的一个属性存储。
具体来说:dataset.get_metadata()['mask_labels'] = {...}
-
返回类型
Dict
[tuple
,tuple
] -
返回
键/值字典。键是一个整数元组,值是一个字符串列表/元组