From 2eda54a755bf7d97acce0eda438db0fb938f36ff Mon Sep 17 00:00:00 2001 From: eptq002345 <1598440105@qq.com> Date: Sun, 24 Sep 2023 11:57:59 +0800 Subject: [PATCH] Update serializer_deserializer.py --- .../dataset/engine/serializer_deserializer.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/mindspore/python/mindspore/dataset/engine/serializer_deserializer.py b/mindspore/python/mindspore/dataset/engine/serializer_deserializer.py index 2789d3ef8fe..5b848d51662 100644 --- a/mindspore/python/mindspore/dataset/engine/serializer_deserializer.py +++ b/mindspore/python/mindspore/dataset/engine/serializer_deserializer.py @@ -25,6 +25,7 @@ from . import datasets as de def serialize(dataset, json_filepath=""): """ Serialize dataset pipeline into a JSON file. + 用于将数据集管道序列化为一个JSON文件。 Note: Currently some Python objects are not supported to be serialized. @@ -48,12 +49,14 @@ def serialize(dataset, json_filepath=""): >>> # serialize it to JSON file >>> serialized_data = ds.serialize(dataset, json_filepath="/path/to/mnist_dataset_pipeline.json") """ + # 返回一个字典,其中包含序列化后的数据集图。 return dataset.to_json(json_filepath) def deserialize(input_dict=None, json_filepath=None): """ Construct dataset pipeline from a JSON file produced by de.serialize(). + 用于从JSON文件中构造数据集管道。 Note: Currently Python function deserialization of map operator are not supported. @@ -82,17 +85,24 @@ def deserialize(input_dict=None, json_filepath=None): """ data = None + # 判断input_dict是否为空 if input_dict: + # 将input_dict转换为de.Dataset对象 data = de.DeserializedDataset(input_dict) + # 如果json_filepath不为空 if json_filepath: + # 将json_filepath转换为de.Dataset对象 data = de.DeserializedDataset(json_filepath) return data +# 定义一个函数expand_path,用于将相对路径转换为绝对路径 def expand_path(node_repr, key, val): - """Convert relative to absolute path.""" + """Convert relative to absolute path.用于将相对路径转换为绝对路径。""" + # 如果val是一个列表 if isinstance(val, list): + # 那么将其中的每个文件路径转换为绝对路径,并添加到node_repr字典中 node_repr[key] = [os.path.abspath(file) for file in val] else: node_repr[key] = os.path.abspath(val) @@ -101,6 +111,7 @@ def expand_path(node_repr, key, val): def show(dataset, indentation=2): """ Write the dataset pipeline graph to logger.info file. + 用于将数据集管道图形写入logger.info文件。 Args: dataset (Dataset): The starting node. @@ -114,14 +125,16 @@ def show(dataset, indentation=2): >>> dataset = dataset.batch(batch_size=10, drop_remainder=True) >>> ds.show(dataset) """ - + # 使用json.dumps函数将其转换为格式化的字符串 pipeline = dataset.to_json() + # 写入logger.info文件 logger.info(json.dumps(pipeline, indent=indentation)) def compare(pipeline1, pipeline2): """ Compare if two dataset pipelines are the same. + 用于比较两个数据集管道的是否相同。 Args: pipeline1 (Dataset): a dataset pipeline. @@ -135,5 +148,5 @@ def compare(pipeline1, pipeline2): >>> pipeline2 = ds.Cifar10Dataset(cifar10_dataset_dir, num_samples=100) >>> res = ds.compare(pipeline1, pipeline2) """ - + # 返回一个bool值 return pipeline1.to_json() == pipeline2.to_json()