数据集版本
class datasetversion.DatasetVersion()
```DatasetVersion``` 表示数据集中的特定版本。
请勿直接实例化。请改用 DatasetVersion.get_version 方法。
BulkContext
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 ] ) – 如果提供了 ```auto_upload_destination```,则为必需。它应指向所有本地源文件的公共文件夹
-
allow_update (
bool
) – 如果为 False(默认值),所有帧操作将使用“添加”操作,“更新”将不被使用(即,即使使用 BulkContext.update() 调用收集的帧也将被添加,而不是更新)。这是一个高级设置,仅在您理解使用更新的限制时才更改。请注意,使用更新时,提供的帧数据会与现有的索引帧数据合并 - 这意味着在使用更新操作时无法删除帧字段。
-
add_frame
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
delete_frame
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
flush
BulkContext.flush()
发送所有待处理的版本更改。
使用此 ```BulkContext``` 进行的任何更新都将发送到服务器。
-
返回类型
None
update_frame
BulkContext.update_frame(frame)
更新当前 ```DatasetVersion``` 中的现有帧。
根据帧 ID 找到帧,并将其属性更改为与 frame 中传入的帧对象匹配。如果帧之前已被添加(例如通过 ```update_frame```),或者存在于父版本中,则帧存在于版本中。如果帧对象没有 ID,则创建一个新帧。
仅在版本仍处于草稿(可写)模式时可用。
-
参数
frame (DatasetVersion.Frame ) – 要更新的帧。
-
返回类型
None
version_id
property version_id
此特定数据集/版本的版本 ID 字符串
-
返回类型
str
version_name
property version_name
数据集版本名称,不一定唯一
-
返回类型
str
dataset_id
property dataset_id
此特定数据集的数据集 ID 字符串
-
返回类型
str
dataset_name
property dataset_name
数据集名称,必须是唯一的名称
-
返回类型
str
draft
property draft
数据集/版本的草稿标志,即此版本是否仍可写入或已锁定且无法更改。
-
返回类型
bool
last_updated
property last_updated
返回数据集版本中最后更新帧的时间戳
-
返回类型
datetime
comment
property comment
返回特定数据集版本的字符串注释
-
返回类型
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 ) – 新数据集的名称。
-
description (str ) – 描述数据集的自由文本。
-
tags (list ) – 用于对数据集进行分类的标签列表(短字符串)。
-
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 (Union [ str , Path ] ) – 如果提供了 ```auto_upload_destination```,则为必需。它应指向所有本地源文件的公共文件夹
-
dataset_project (
Optional
[str
]) – 要检索的数据集所属的项目。
-
-
返回类型
ForwardRef
-
返回
表示所选版本的 ```DatasetVersion``` 对象。
dataset_id 和 dataset_name 是互斥的。将两者设置为非 None 值将引发 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 是互斥的。将两者设置为非 None 值将引发 UsageError 异常。
version_id 和 version_name 是互斥的。将两者设置为非 None 值将引发 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 是互斥的。将两者设置为非 None 值将引发 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 (Union [ str , Path ] ) – 如果提供了 ```auto_upload_destination```,则为必需。它应指向所有本地源文件的公共文件夹
-
raise_on_multiple (bool ) – 如果找到多个版本,则引发错误
-
dataset_project (str ) – 要检索的版本所属数据集的项目。
-
-
返回类型
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 是互斥的。将两者设置为非 None 值将引发 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 是互斥的。将两者设置为非 None 值将引发 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 ) – 要检索的版本所属数据集的项目。
信息当作为实例方法调用此方法时,dataset_id、dataset_name、dataset_project、version_id 和 version_name 不是必需的。
-
-
返回类型
Union
[List
[Union
[SingleFrame
,FrameGroup
]],List
[dict
]] -
返回
表示请求帧的 SingleFrame / FrameGroup 对象列表或字典列表。
信息dataset_id 和 dataset_name 是互斥的。将两者设置为非 None 值将引发 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 <date-time>”。
-
publish_comment (str ) – 已发布版本的新注释。默认值为“published at <date-time> by <user>”。
-
publish_metadata (dict ) – 已发布版本的用户指定元数据对象。键不能包含“$”和“.”。
-
child_name (str ) – 子版本的名称。如果未提供,则使用父版本的名称。
-
child_comment (str ) – 子版本的注释。
-
child_metadata (dict ) – 子版本的用户指定元数据对象。键不能包含“$”和“.”。
-
dataset_project (str ) – 数据集所属的项目
-
-
返回类型
ForwardRef
-
返回
表示新草稿子版本的 ```DatasetVersion``` 对象。
如果未提供 version_name/id,则数据集的当前版本即为快照版本。
dataset_id 和 dataset_name 是互斥的。将两者设置为非 None 值将引发 UsageError 异常。
version_id 和 version_name 是互斥的。将两者设置为非 None 值将引发 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 ) – 新版本的名称。
-
description (str ) – 新数据集版本的描述
-
dataset_id (str ) – 要在其中创建版本的数据集 ID。
-
dataset_name (str ) – 要在其中创建版本的数据集名称。
-
parent_version_ids (list ) – 新版本父版本的 ID 列表。所有 ID 必须是此数据集中现有版本的 ID。目前,一个版本仅支持一个父版本。此列表是为了将来的兼容性。
-
parent_version_names (list ) – 新版本父版本的名称列表。所有名称必须是此数据集中现有版本的名称。目前,一个版本仅支持一个父版本。此列表是为了将来的兼容性。
-
raise_if_exists (bool ) – 如果为 ```True``` 且名称为 ```name``` 的版本已存在,则引发 ```ValueError```。如果为 ```False``` 且该名称的版本已存在,则返回该版本。
-
auto_upload_destination (str ) – 如果指定,SingleFrame/FrameGroup 链接的任何本地文件将自动上传到目标存储。
-
local_dataset_root_path (Union [ str , Path ] ) – 如果提供了 ```auto_upload_destination```,则为必需。它应指向所有本地源文件的公共文件夹
-
dataset_project (str ) – 要在其中创建版本的数据集所属的项目。
-
-
返回类型
ForwardRef
-
返回
表示新版本的新 ```DatasetVersion``` 对象。
dataset_id 和 dataset_name 是互斥的。将两者设置为非 None 值将引发 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)
返回系统中所有数据集的列表,按创建时间排序。
-
参数
tags (list ) – 根据请求的标签列表(字符串)进行过滤。要排除某个标签,请在标签前添加“-”前缀。示例:```["best", "-debug"]```。默认行为是使用逻辑“或”运算符连接所有标签。若要改用逻辑“与”运算符连接所有标签,请使用“\_\_$all”作为第一个字符串,例如
["__$all", "best", "experiment", "ever"]
若要使用“与”连接所有标签,但排除某个标签,请在该排除标签前使用“\_\_$not”,例如
["__$all", "best", "experiment", "ever", "__$not", "internal", "__$not", "test"]
“或”和“与”运算符适用于它们后面的所有标签,直到指定了另一个运算符。非运算符仅适用于紧随其后的标签。例如
["__$all", "a", "b", "c", "__$or", "d", "__$not", "e", "__$and", "__$or" "f", "g"]
此示例表示(“a” 与 “b” 与 “c” 与(“d” 或 非“e”)与(“f” 或 “g”))。更多信息请参见 https://clearml.org.cn/docs/latest/docs/clearml_sdk/task_sdk/#tag-filters。
-
返回类型
List
[None
] -
返回
```datasets.Dataset``` 列表,列表中的每个元素代表一个数据集。数据集按创建时间排序,从最旧到最新
get_iterator
get_iterator(projection=None)
获取此版本的迭代器。
-
参数
projection (Optional [ Sequence [ str ] ] ) – 用于选择要返回的帧的哪些部分。每个字符串代表一个字段或子字段(使用点分隔表示法)。要指定特定的数组元素,请使用数组索引作为字段名。要指定所有数组元素,请使用“*”。如果设置了此参数,迭代器返回的值将是表示每个帧的字典
例如
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
# }
# }
# ]
# } -
返回类型
Generator[Union[“DatasetVersion.Frame”, dict]]
-
返回
所有版本帧的迭代器。
add_frames
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 (list ) – 要保存的新帧列表。
-
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’
信息注意
- 上传的文件将在指定存储中的 dataset_id/version_name.version_id/ 文件夹下保持相同的结构
- 如果文件内容哈希已注册,它将自动链接到现有的远程文件,而不是重新上传本地副本
- 在数据集/版本文件夹中,文件存储的路径与本地存储中的路径相同,相对于提供的 local_root_dataset_folder
-
local_dataset_root_path (Union [ str , Path ] ) – 如果提供了 ```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’。指示错误发生在哪里
-
update_frames
update_frames(frames, batch_size=1000, refresh_version_stats=True, without_fields=None)
更新此 ```DatasetVersion``` 中的现有帧。
根据帧 ID 找到每个帧,并将其属性更改为与 frames 中传入的帧对象匹配。如果帧之前已被添加(例如通过 ```update_frames```),或者存在于父版本中,则帧存在于版本中。如果帧对象没有 ID,则创建一个新帧。
仅在版本仍处于草稿(可写)模式时可用
-
参数
-
frames (list ) – 要更新的帧列表。
-
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)可以指定不提供任何字段的更新操作。
信息使用更新操作时,忽略已删除的帧字段(例如,更新不能用于从元结构中删除字段)。
例如,为了避免发送元数据
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
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
]) – 上下文用于记录日志的 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’
信息注意
- 上传的文件将在指定存储中的 dataset_id/version_name.version_id/ 文件夹下保持相同的结构
- 如果文件内容哈希已注册,它将自动链接到现有的远程文件,而不是重新上传本地副本
- 在数据集/版本文件夹中,文件存储的路径与本地存储中的路径相同,相对于提供的 local_root_dataset_folder
-
local_dataset_root_path (Union [ str , Path ] ) – 如果提供了 ```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
flush(refresh_version_stats=True)
发送所有待处理的版本更改。
如果通过 ```get_bulk_context``` 获取了 ```BulkContext```,则使用它进行的任何更新都将发送到服务器。否则,此操作无效。
-
参数
refresh_version_stats (
Optional
[bool
]) – 自动调用 ```commit_version``` 以刷新此版本的统计信息。 -
返回类型
None
commit_version
commit_version(**kwargs)
提交此 **草稿** ```DatasetVersion```,包含迄今为止所做的所有更改。
提交版本会将其所做的更改与父版本合并。仍然可以对版本进行进一步的更改。这是发布版本之前必须执行的步骤。
这是一个阻塞方法,可能需要时间才能完成。
-
返回类型
CallResult
-
参数
kwargs (Any ) –
publish_version
publish_version()
发布此 ```DatasetVersion```。
发布版本后,它不再是草稿版本,不允许对此版本进行进一步更改。
-
返回类型
bool
-
返回
如果成功则为 ```True```,否则为 ```False```。
get_stats
get_stats()
返回此版本的统计信息
-
返回类型
None
get_parent
get_parent()
返回此版本父版本的 ID
-
返回类型
str
get_metadata
get_metadata()
-
返回类型
dict
-
返回
返回为特定数据集版本存储的用户定义值元数据(字典)
set_metadata
set_metadata(metadata)
存储为特定数据集版本存储的用户定义值元数据(字典)
-
参数
metadata (dict ) – 键/值字典(支持嵌套字典)
-
返回类型
bool
-
返回
如果成功则为 True(锁定/已发布版本无法更改版本元数据)
set_version_name
set_version_name(name)
为此数据集版本设置新名称
-
参数
name (
str
) – 版本新名称 -
返回类型
bool
-
返回
如果成功则为 True
set_masks_labels
set_masks_labels(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
-
返回
如果成功则为 True(锁定/已发布版本无法更改版本元数据)
get_masks_labels
get_masks_labels()
获取全局(数据集版本范围)查找表,用于将每个像素的掩码值映射到标签。例如
{
(0,0,0): ["background"],
(1,1,1): ["person", "sitting"],
(2,2,2): ["cat"],
}
像素掩码标签查找表作为数据集版本元数据的一个属性存储。具体来说:```dataset.get_metadata()['mask_labels'] = {...}```
-
返回类型
Dict
[tuple
,tuple
] -
返回
键/值字典。键是一个整数元组,值是一个字符串列表/元组