mindflow.data.Dataset
- class mindflow.data.Dataset(geometry_dict=None, existed_data_list=None, dataset_list=None)[源代码]
将数据集合并在一起。
- 参数:
geometry_dict (dict, 可选) - 指定要合并的几何数据集。键为几何实例,值为几何体类型的列表。例如,geometry_dict = {geom : [“domain”, “BC”, “IC”]}。默认值:
None
。existed_data_list (Union[list, tuple, ExistedDataConfig], 可选) - 指定要合并的现有数据集。例如,existed_data_list = [ExistedDataConfig_Instance1, ExistedDataConfig_Instance2]。默认值:
None
。dataset_list (Union[list, tuple, Data], 可选) - 指定要合并的数据实例。例如,dataset_list=[BoundaryIC_Instance, Equation_Instance, BoundaryBC_Instance and ExistedData_Instance]。默认值:
None
。
- 异常:
ValueError - 如果 geometry_dict 、 existed_data_list 和 dataset_list 都为
None
。TypeError - 如果 geometry_dict 的类型不是dict。
TypeError - 如果 geometry_dict 的键类型不是Geometry的实例。
TypeError - 如果 existed_data_list 的类型不是列表、元组或ExistedDataConfig的实例。
TypeError - 如果 existed_data_list 的元素不是ExistedDataConfig的实例。
TypeError - 如果 dataset_list 的元素不是Data的实例。
- 支持平台:
Ascend
GPU
样例:
>>> from mindflow.geometry import Rectangle, generate_sampling_config >>> from mindflow.data import Dataset >>> rectangle_mesh = dict({'domain': dict({'random_sampling': False, 'size': [50, 25]})}) >>> rect_space = Rectangle("rectangle", coord_min=[0, 0], coord_max=[5, 5], ... sampling_config=generate_sampling_config(rectangle_mesh)) >>> geom_dict = {rect_space: ["domain"]} >>> dataset = Dataset(geometry_dict=geom_dict)
- create_dataset(batch_size=1, preprocess_fn=None, input_output_columns_map=None, shuffle=True, drop_remainder=True, prebatched_data=False, num_parallel_workers=1, num_shards=None, shard_id=None, python_multiprocessing=False)[源代码]
创建最终的MindSpore类型数据集以合并所有子数据集。
- 参数:
batch_size (int, 可选) - 每个批处理创建的行数,int值。默认值:
1
。preprocess_fn (Union[list[TensorOp], list[functions]], 可选) - 要应用于数据集的进行操作的列表。按它们在此列表中的顺序遍历操作。默认值:
None
。input_output_columns_map (dict, 可选) - 指定要替换的列和需要替换成的内容。键是要被替换的列名,值是要替换成的内容。如果映射后所有列都未更改,则无需设置此参数。默认值:
None
。shuffle (bool, 可选) - 是否对数据集执行shuffle。需要随机可访问的输入。默认值:
True
,表中显示的预期顺序。drop_remainder (bool, 可选) - 确定是否删除最后一个block,这个block的数据行数小于批处理大小。如果为
True
,且有更小的 batch_size ,可用于创建最后一个batch,那么这些行将被丢弃,而不传播到子节点。默认值:True
。prebatched_data (bool, 可选) - 在创建MindSpore数据集之前生成预批处理数据。如果为
True
,当按索引获取每个子数据集数据时,将返回预批处理数据。否则,批处理操作将由MindSpore数据集接口:dataset.batch完成。当 batch_size 非常大时,建议将此选项设置为True
,以提高主机上的性能。默认值:False
。num_parallel_workers (int, 可选) - 并行处理数据集的工作线程(线程)数。默认值:
1
。num_shards (int, 可选) - 数据集将被划成的分片数。需要随机可访问的输入。指定此参数时,num_samples 反映每个分片的最大样本数。默认值:
None
。shard_id (int, 可选) - num_shards 内的shard ID。需要随机可访问的输入。仅当同时指定了 num_shards 时必须指定此参数。默认值:
None
。python_multiprocessing (bool, 可选) - 并行使用多处理Python函数per_batch_map和multi-processing。 如果函数计算量很大,此选项可能会很有用。默认值:
False
。
- 返回:
BatchDataset,批处理之后的数据集。
样例:
>>> data = dataset.create_dataset()
- get_columns_list()[源代码]
获取column列表。
- 返回:
list[str],最终统一数据集的列名列表。
样例:
>>> columns_list = dataset.get_columns_list()
- set_constraint_type(constraint_type='Equation')[源代码]
设置数据集的约束类型。
- 参数:
constraint_type (Union[str, dict]) - 指定数据集的约束类型,有方程,边界条件,初始条件等。如果是string,则所有子数据集的约束类型将设置为相同的类型。如果是dict,则子数据集及其约束类型由对(键,值)指定。支持的值有:
"equation"
、"bc"
、"ic"
、"label"
、"function"
、"custom"
。默认值:"Equation"
,指该约束类型为方程。
样例:
>>> dataset.set_constraint_type("Equation")