Skip to main content

数据集版本

datasetversion.DatasetVersion()

DatasetVersion 表示数据集中的一个特定版本。

warning

不要直接实例化。 请使用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,否则将上传该文件。

info

仅在版本仍处于草稿(可写)模式时可用

  • 参数

    • 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删除,所有其他框架属性(如果存在)将被忽略。

info

仅当版本仍处于草稿(可写)模式时可用。

  • 参数

    • 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,则创建一个新帧。

info

仅当版本仍处于草稿(可写)模式时可用。

  • 参数

    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

  • 返回

    为新创建的数据集创建一个新的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 对象表示选定的版本。

info

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)

从系统中移除数据集的版本。

info

dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。

info

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对象

info

如果没有提供版本名称/ID,则返回数据集的当前版本。

info

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对象

info

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对象列表

info

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对象列表

info

从版本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对象的列表,或一个表示请求帧的字典列表。

    info

    dataset_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 对象表示新的草稿子版本。

info

如果没有提供version_name/id,数据集的当前版本是快照版本。

info

dataset_id 和 dataset_name 是互斥的。将两者都设置为非空值将会引发 UsageError 异常。

info

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_existsTrue,则抛出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对象表示新版本。

info

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,否则将上传该文件。

info

仅在版本仍处于草稿(可写)模式时可用

  • 参数

    • 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

    备注:

    1. The uploaded files will keep the same structure inside the designation storage under dataset_id/version_name.version_id/ folders
    2. If a file content hash is already registered, it will automatically link to the existing remote file instead of re-uploading the local copy
    3. 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’。指示错误发生的位置

更新帧

update_frames(frames, batch_size=1000, refresh_version_stats=True, without_fields=None)

更新此DatasetVersion中的现有帧。

通过ID查找每个帧,并更改其属性以匹配传入的帧对象。如果帧之前被添加过(例如通过update_frames),或者它们存在于父版本中,则帧存在于版本中。 如果帧对象没有ID,则创建一个新帧。

info

仅在版本仍处于草稿(可写)模式时可用

  • 参数

    • 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删除,所有其他帧属性(如果存在)将被忽略。

info

仅当版本仍处于草稿(可写)模式时可用。

  • 参数

    • 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)

获取一个上下文管理器,用于对此版本进行批量更新。

批量上下文允许在此版本上批量添加/编辑/删除数据帧,而不是逐个进行。

info

每个DatasetVersion只能有一个BulkContext。第二次调用get_bulk_context将返回相同的对象。

info

仅当版本仍处于草稿(可写)模式时可用。

  • 参数

    • flush_threshold (int ) – 每 flush_threshold 次更新后提交更新到帧。一次更新是对 BulkContext.add_frameBulkContext.update_frameBulkContext.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

    备注:

    1. The uploaded files will keep the same structure inside the designation storage under dataset_id/version_name.version_id/ folders
    2. If a file content hash is already registered, it will automatically link to the existing remote file instead of re-uploading the local copy
    3. 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,包含到目前为止所做的所有更改。

提交版本会将其所做的更改与父版本合并。 对该版本的进一步更改仍然是可能的。 这是在发布版本之前必须完成的步骤。

warning

这是一个阻塞方法,可能需要一些时间才能完成。

  • 返回类型

    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]

  • 返回

    键/值字典。键是一个整数元组,值是一个字符串列表/元组