forked from mindspore-Ecosystem/mindspore
modify error format for chinese python api.
This commit is contained in:
parent
68492aa19a
commit
eddb5f9ca0
|
@ -1,53 +1,53 @@
|
|||
.. py:method:: apply(apply_func)
|
||||
|
||||
对数据集对象执行给定操作函数。
|
||||
|
||||
**参数:**
|
||||
|
||||
**apply_func** (function):数据集处理函数,要求该函数的输入是一个 `Dataset` 对象,返回的是处理后的 `Dataset` 对象。
|
||||
|
||||
**返回:**
|
||||
|
||||
执行了给定操作函数的数据集对象。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `apply_func` 的类型不是函数。
|
||||
- **TypeError** - `apply_func` 未返回Dataset对象。
|
||||
|
||||
.. py:method:: batch(batch_size, drop_remainder=False, num_parallel_workers=None, per_batch_map=None, input_columns=None, output_columns=None, column_order=None, pad_info=None, python_multiprocessing=False, max_rowsize=16)
|
||||
|
||||
将数据集中连续 `batch_size` 条数据合并为一个批处理数据。
|
||||
|
||||
`batch` 操作要求每列中的数据具有相同的shape。如果指定了参数 `per_batch_map` ,该参数将作用于批处理后的数据。
|
||||
|
||||
.. note::
|
||||
执行 `repeat` 和 `batch` 操作的先后顺序,会影响批处理数据的数量及 `per_batch_map` 的结果。建议在 `batch` 操作完成后执行 `repeat` 操作。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (Union[int, Callable]) - 指定每个批处理数据包含的数据条目。
|
||||
如果 `batch_size` 为整型,则直接表示每个批处理数据大小;
|
||||
如果为可调用对象,则可以通过自定义行为动态指定每个批处理数据大小,要求该可调用对象接收一个参数BatchInfo,返回一个整形代表批处理大小,用法请参考样例(3)。
|
||||
- **drop_remainder** (bool, 可选) - 当最后一个批处理数据包含的数据条目小于 `batch_size` 时,是否将该批处理丢弃,不传递给下一个操作。默认值:False,不丢弃。
|
||||
- **num_parallel_workers** (int, 可选) - 指定 `batch` 操作的并发进程数/线程数(由参数 `python_multiprocessing` 决定当前为多进程模式或多线程模式)。
|
||||
默认值:None,使用mindspore.dataset.config中配置的线程数。
|
||||
- **per_batch_map** (callable, 可选) - 可调用对象,以(list[Tensor], list[Tensor], ..., BatchInfo)作为输入参数,处理后返回(list[Tensor], list[Tensor],...)作为新的数据列。
|
||||
输入参数中每个list[Tensor]代表给定数据列中的一批Tensor,list[Tensor]的个数应与 `input_columns` 中传入列名的数量相匹配,
|
||||
在返回的(list[Tensor], list[Tensor], ...)中,list[Tensor]的个数应与输入相同,如果输出列数与输入列数不一致,则需要指定 `output_columns`。
|
||||
该可调用对象的最后一个输入参数始终是BatchInfo,用于获取数据集的信息,用法参考样例(2)。
|
||||
- **input_columns** (Union[str, list[str]], 可选):指定 `batch` 操作的输入数据列。
|
||||
如果 `per_batch_map` 不为None,列表中列名的个数应与 `per_batch_map` 中包含的列数匹配。默认值:None,不指定。
|
||||
- **output_columns** (Union[str, list[str]], 可选) - 指定 `batch` 操作的输出数据列。如果输入数据列与输入数据列的长度不相等,则必须指定此参数。
|
||||
此列表中列名的数量必须与 `per_batch_map` 方法的返回值数量相匹配。默认值:None,输出列将与输入列具有相同的名称。
|
||||
- **column_order** (Union[str, list[str]], 可选) - 指定传递到下一个数据集操作的数据列顺序。
|
||||
如果 `input_column` 长度不等于 `output_column` 长度,则此参数必须指定。
|
||||
注意:列名不限定在 `input_columns` 和 `output_columns` 中指定的列,也可以是上一个操作输出的未被处理的数据列,详细可参阅使用样例(4)。默认值:None,按照原输入顺序排列。
|
||||
- **pad_info** (dict, 可选) - 对给定数据列进行填充。通过传入dict来指定列信息与填充信息,例如 `pad_info={"col1":([224,224],0)}` ,
|
||||
则将列名为"col1"的数据列扩充到shape为[224,224]的Tensor,缺失的值使用0填充。默认值:None,不填充。
|
||||
- **python_multiprocessing** (bool, 可选) - 启动Python多进程模式并行执行 `per_batch_map` 。如果 `per_batch_map` 的计算量很大,此选项可能会很有用。默认值:False,不启用多进程。
|
||||
- **max_rowsize** (int, 可选) - 指定在多进程之间复制数据时,共享内存分配的最大空间,仅当 `python_multiprocessing` 为True时,该选项有效。默认值:16,单位为MB。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dataset, `batch` 操作后的数据集对象。
|
||||
.. py:method:: apply(apply_func)
|
||||
|
||||
对数据集对象执行给定操作函数。
|
||||
|
||||
**参数:**
|
||||
|
||||
**apply_func** (function):数据集处理函数,要求该函数的输入是一个 `Dataset` 对象,返回的是处理后的 `Dataset` 对象。
|
||||
|
||||
**返回:**
|
||||
|
||||
执行了给定操作函数的数据集对象。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `apply_func` 的类型不是函数。
|
||||
- **TypeError** - `apply_func` 未返回Dataset对象。
|
||||
|
||||
.. py:method:: batch(batch_size, drop_remainder=False, num_parallel_workers=None, per_batch_map=None, input_columns=None, output_columns=None, column_order=None, pad_info=None, python_multiprocessing=False, max_rowsize=16)
|
||||
|
||||
将数据集中连续 `batch_size` 条数据合并为一个批处理数据。
|
||||
|
||||
`batch` 操作要求每列中的数据具有相同的shape。如果指定了参数 `per_batch_map` ,该参数将作用于批处理后的数据。
|
||||
|
||||
.. note::
|
||||
执行 `repeat` 和 `batch` 操作的先后顺序,会影响批处理数据的数量及 `per_batch_map` 的结果。建议在 `batch` 操作完成后执行 `repeat` 操作。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (Union[int, Callable]) - 指定每个批处理数据包含的数据条目。
|
||||
如果 `batch_size` 为整型,则直接表示每个批处理数据大小;
|
||||
如果为可调用对象,则可以通过自定义行为动态指定每个批处理数据大小,要求该可调用对象接收一个参数BatchInfo,返回一个整形代表批处理大小,用法请参考样例(3)。
|
||||
- **drop_remainder** (bool, 可选) - 当最后一个批处理数据包含的数据条目小于 `batch_size` 时,是否将该批处理丢弃,不传递给下一个操作。默认值:False,不丢弃。
|
||||
- **num_parallel_workers** (int, 可选) - 指定 `batch` 操作的并发进程数/线程数(由参数 `python_multiprocessing` 决定当前为多进程模式或多线程模式)。
|
||||
默认值:None,使用mindspore.dataset.config中配置的线程数。
|
||||
- **per_batch_map** (callable, 可选) - 可调用对象,以(list[Tensor], list[Tensor], ..., BatchInfo)作为输入参数,处理后返回(list[Tensor], list[Tensor],...)作为新的数据列。
|
||||
输入参数中每个list[Tensor]代表给定数据列中的一批Tensor,list[Tensor]的个数应与 `input_columns` 中传入列名的数量相匹配,
|
||||
在返回的(list[Tensor], list[Tensor], ...)中,list[Tensor]的个数应与输入相同,如果输出列数与输入列数不一致,则需要指定 `output_columns`。
|
||||
该可调用对象的最后一个输入参数始终是BatchInfo,用于获取数据集的信息,用法参考样例(2)。
|
||||
- **input_columns** (Union[str, list[str]], 可选):指定 `batch` 操作的输入数据列。
|
||||
如果 `per_batch_map` 不为None,列表中列名的个数应与 `per_batch_map` 中包含的列数匹配。默认值:None,不指定。
|
||||
- **output_columns** (Union[str, list[str]], 可选) - 指定 `batch` 操作的输出数据列。如果输入数据列与输入数据列的长度不相等,则必须指定此参数。
|
||||
此列表中列名的数量必须与 `per_batch_map` 方法的返回值数量相匹配。默认值:None,输出列将与输入列具有相同的名称。
|
||||
- **column_order** (Union[str, list[str]], 可选) - 指定传递到下一个数据集操作的数据列顺序。
|
||||
如果 `input_column` 长度不等于 `output_column` 长度,则此参数必须指定。
|
||||
注意:列名不限定在 `input_columns` 和 `output_columns` 中指定的列,也可以是上一个操作输出的未被处理的数据列,详细可参阅使用样例(4)。默认值:None,按照原输入顺序排列。
|
||||
- **pad_info** (dict, 可选) - 对给定数据列进行填充。通过传入dict来指定列信息与填充信息,例如 `pad_info={"col1":([224,224],0)}` ,
|
||||
则将列名为"col1"的数据列扩充到shape为[224,224]的Tensor,缺失的值使用0填充。默认值:None,不填充。
|
||||
- **python_multiprocessing** (bool, 可选) - 启动Python多进程模式并行执行 `per_batch_map` 。如果 `per_batch_map` 的计算量很大,此选项可能会很有用。默认值:False,不启用多进程。
|
||||
- **max_rowsize** (int, 可选) - 指定在多进程之间复制数据时,共享内存分配的最大空间,仅当 `python_multiprocessing` 为True时,该选项有效。默认值:16,单位为MB。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dataset, `batch` 操作后的数据集对象。
|
||||
|
|
|
@ -3,7 +3,7 @@ mindspore.dataset.transforms.c_transforms.Relational
|
|||
|
||||
.. py:class:: mindspore.dataset.transforms.c_transforms.Relational()
|
||||
|
||||
关系操作符,可以取值为Relational.EQ、Relational.NE、Relational.GT、Relational.GE、Relational.LT、Relational.LE。
|
||||
关系操作符,可以取值为Relational.EQ、Relational.NE、Relational.GT、Relational.GE、Relational.LT、Relational.LE。
|
||||
|
||||
- **Relational.EQ** - 相等关系。
|
||||
- **Relational.NE** - 不相等关系。
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
mindspore.dataset.vision.c_transforms.RandomResizedCropWithBBox
|
||||
=================================================
|
||||
================================================================
|
||||
|
||||
.. py:class:: mindspore.dataset.vision.c_transforms.RandomResizedCropWithBBox(size, scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.), interpolation=Inter.BILINEAR, max_attempts=10)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
mindspore.dataset.vision.c_transforms.RandomRotation
|
||||
=================================================
|
||||
=====================================================
|
||||
|
||||
.. py:class:: mindspore.dataset.vision.c_transforms.RandomRotation(degrees, resample=Inter.NEAREST, expand=False, center=None, fill_value=0)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
mindspore.dataset.vision.c_transforms.RandomVerticalFlip
|
||||
=================================================
|
||||
==========================================================
|
||||
|
||||
.. py:class:: mindspore.dataset.vision.c_transforms.RandomVerticalFlip(prob=0.5)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
mindspore.dataset.vision.c_transforms.RandomVerticalFlipWithBBox
|
||||
=================================================
|
||||
=================================================================
|
||||
|
||||
.. py:class:: mindspore.dataset.vision.c_transforms.RandomVerticalFlipWithBBox(prob=0.5)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
mindspore.dataset.vision.c_transforms.SlicePatches
|
||||
=================================================
|
||||
===================================================
|
||||
|
||||
.. py:class:: mindspore.dataset.vision.c_transforms.SlicePatches(num_height=1, num_width=1, slice_mode=SliceMode.PAD, fill_value=0)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
mindspore.dataset.vision.c_transforms.SoftDvppDecodeResizeJpeg
|
||||
=================================================
|
||||
================================================================
|
||||
|
||||
.. py:class:: mindspore.dataset.vision.c_transforms.SoftDvppDecodeResizeJpeg(size)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
mindspore.dataset.vision.c_transforms.VerticalFlip
|
||||
=================================================
|
||||
===================================================
|
||||
|
||||
.. py:class:: mindspore.dataset.vision.c_transforms.VerticalFlip
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ mindspore.dataset.vision.py_transforms.UniformAugment
|
|||
|
||||
**参数:**
|
||||
|
||||
- **transforms** (sequence) - 数据处理操作序列。
|
||||
- **num_ops** (int,可选) - 均匀采样的数据处理操作数,默认值:2。
|
||||
- **transforms** (sequence) - 数据处理操作序列。
|
||||
- **num_ops** (int,可选) - 均匀采样的数据处理操作数,默认值:2。
|
||||
|
||||
**异常:**
|
||||
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.Cifar100ToMR(source, destination)
|
||||
|
||||
将CIFAR-100数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换CIFAR-10数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换CIFAR-10数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的CIFAR-100数据集文件的目录路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 或 `destination` 无效。
|
||||
|
||||
|
||||
.. py:method:: run(fields=None)
|
||||
|
||||
执行从CIFAR-100数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表,例如['fine_label', 'coarse_label']。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-100数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform(fields=None)
|
||||
|
||||
:func: `mindspore.mindrecord.Cifar100ToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表,例如['fine_label', 'coarse_label']。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-100数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
.. py:class:: mindspore.mindrecord.Cifar100ToMR(source, destination)
|
||||
|
||||
将CIFAR-100数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换CIFAR-10数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换CIFAR-10数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的CIFAR-100数据集文件的目录路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 或 `destination` 无效。
|
||||
|
||||
|
||||
.. py:method:: run(fields=None)
|
||||
|
||||
执行从CIFAR-100数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表,例如['fine_label', 'coarse_label']。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-100数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform(fields=None)
|
||||
|
||||
:func: `mindspore.mindrecord.Cifar100ToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表,例如['fine_label', 'coarse_label']。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-100数据集是否成功转换为MindRecord格式数据集。
|
||||
|
|
|
@ -1,45 +1,45 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.Cifar10ToMR(source, destination)
|
||||
|
||||
将CIFAR-10数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换CIFAR-10数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换CIFAR-10数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的CIFAR-10数据集文件的目录路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 或 `destination` 无效。
|
||||
|
||||
|
||||
.. py:method:: run(fields=None)
|
||||
|
||||
执行从CIFAR-10数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-10数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform(fields=None)
|
||||
|
||||
:func: `mindspore.mindrecord.Cifar10ToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-10数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:class:: mindspore.mindrecord.Cifar10ToMR(source, destination)
|
||||
|
||||
将CIFAR-10数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换CIFAR-10数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换CIFAR-10数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的CIFAR-10数据集文件的目录路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 或 `destination` 无效。
|
||||
|
||||
|
||||
.. py:method:: run(fields=None)
|
||||
|
||||
执行从CIFAR-10数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-10数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform(fields=None)
|
||||
|
||||
:func: `mindspore.mindrecord.Cifar10ToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **fields** (list[str],可选) - 索引字段的列表。默认值:None。
|
||||
索引字段的设置请参考函数 :func: `mindspore.mindrecord.FileWriter.add_index` 。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CIFAR-10数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.CsvToMR(source, destination, columns_list=None, partition_number=1)
|
||||
|
||||
将CSV格式数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换CSV数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换CSV数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的CSV文件路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
- **columns_list** (list[str],可选) - CSV中待读取数据列的列表。默认值:None,读取所有的数据列。
|
||||
- **partition_number** (int,可选) - 生成MindRecord的文件个数。默认值:1。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 、`destination` 、`partition_number` 无效。
|
||||
- **RuntimeError** - `columns_list` 无效。
|
||||
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从CSV格式数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CSV数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.CsvToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
.. py:class:: mindspore.mindrecord.CsvToMR(source, destination, columns_list=None, partition_number=1)
|
||||
|
||||
将CSV格式数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换CSV数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换CSV数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的CSV文件路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
- **columns_list** (list[str],可选) - CSV中待读取数据列的列表。默认值:None,读取所有的数据列。
|
||||
- **partition_number** (int,可选) - 生成MindRecord的文件个数。默认值:1。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 、`destination` 、`partition_number` 无效。
|
||||
- **RuntimeError** - `columns_list` 无效。
|
||||
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从CSV格式数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,CSV数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.CsvToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
|
|
@ -1,37 +1,37 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.FileReader(file_name, num_consumer=4, columns=None, operator=None)
|
||||
|
||||
读取MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
- 如果 `file_name` 是文件名的字符串,则会尝试加载同一批转换生成的所有MindRecord文件,如果缺少其中某个MindRecord文件,则会引发异常。
|
||||
- 如果 `file_name` 是文件名的列表,则只加载列表中指定的MindRecord文件。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str, list[str]) - MindRecord格式的数据集文件或文件列表。
|
||||
- **num_consumer** (int,可选) - 加载数据的并发数。默认值:4。不应小于1或大于处理器的核数。
|
||||
- **columns** ((list[str],可选) - MindRecord中待读取数据列的列表。默认值:None,读取所有的数据列。
|
||||
- **operator** (int,可选) - 保留参数。默认值:None。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 、`num_consumer` 或 `columns` 无效。
|
||||
|
||||
|
||||
.. py:method:: close()
|
||||
|
||||
停止数据集加载并且关闭文件句柄。
|
||||
|
||||
|
||||
.. py:method:: get_next()
|
||||
|
||||
按列名一次返回一个batch的数据。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dict,key与数据列的列名相同的一个batch的数据。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMUnsupportedSchemaError** - schema无效。
|
||||
|
||||
.. py:class:: mindspore.mindrecord.FileReader(file_name, num_consumer=4, columns=None, operator=None)
|
||||
|
||||
读取MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
- 如果 `file_name` 是文件名的字符串,则会尝试加载同一批转换生成的所有MindRecord文件,如果缺少其中某个MindRecord文件,则会引发异常。
|
||||
- 如果 `file_name` 是文件名的列表,则只加载列表中指定的MindRecord文件。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str, list[str]) - MindRecord格式的数据集文件或文件列表。
|
||||
- **num_consumer** (int,可选) - 加载数据的并发数。默认值:4。不应小于1或大于处理器的核数。
|
||||
- **columns** ((list[str],可选) - MindRecord中待读取数据列的列表。默认值:None,读取所有的数据列。
|
||||
- **operator** (int,可选) - 保留参数。默认值:None。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 、`num_consumer` 或 `columns` 无效。
|
||||
|
||||
|
||||
.. py:method:: close()
|
||||
|
||||
停止数据集加载并且关闭文件句柄。
|
||||
|
||||
|
||||
.. py:method:: get_next()
|
||||
|
||||
按列名一次返回一个batch的数据。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dict,key与数据列的列名相同的一个batch的数据。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMUnsupportedSchemaError** - schema无效。
|
||||
|
|
|
@ -1,181 +1,181 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.FileWriter(file_name, shard_num=1)
|
||||
|
||||
将用户自定义的数据转为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
生成MindRecord文件后,如果修改文件名,可能会导致读取文件失败。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str) - 转换生成的MindRecord文件路径。
|
||||
- **shard_num** (int,可选) - 生成MindRecord的文件个数。默认值:1。取值范围为[1, 1000]。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 或 `shard_num` 无效。
|
||||
|
||||
|
||||
.. py:method:: add_index(index_fields)
|
||||
|
||||
指定schema中的字段作为索引来加速MindRecord文件的读取。schema可以通过 `add_schema` 通过来添加。
|
||||
|
||||
.. note::
|
||||
- 索引字段应为Primitive类型,例如`int`、`float`、`str`。
|
||||
- 如果不调用该函数,则默认将schema中所有的Primitive类型的字段设置为索引。
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **index_fields** (list[str]) - schema中的字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamTypeError** - 索引字段无效。
|
||||
- **MRMDefineIndexError** - 索引字段不是Primitive类型。
|
||||
- **MRMAddIndexError** - 无法添加索引字段。
|
||||
- **MRMGetMetaError** - 未设置schema或无法获取schema。
|
||||
|
||||
|
||||
.. py:method:: add_schema(content, desc=None)
|
||||
|
||||
增加描述用户自定义数据的schema。
|
||||
|
||||
.. note::
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **content** (dict) - schema内容的字典。
|
||||
- **desc** (str,可选)) - schema的描述字符。默认值:None。
|
||||
|
||||
**返回:**
|
||||
|
||||
int,schema ID。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMInvalidSchemaError** - schema无效。
|
||||
- **MRMBuildSchemaError** - 构建schema失败。
|
||||
- **MRMAddSchemaError** - 添加schema失败。
|
||||
|
||||
|
||||
.. py:method:: commit()
|
||||
|
||||
将内存中的数据同步到磁盘,并生成相应的数据库文件。
|
||||
|
||||
.. note::
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMSetHeaderError** - 设置MindRecord文件的header失败。
|
||||
- **MRMIndexGeneratorError** - 创建索引Generator失败。
|
||||
- **MRMGenerateIndexError** - 写入数据库失败。
|
||||
- **MRMCommitError** - 数据同步到磁盘失败。
|
||||
|
||||
|
||||
.. py:method:: open_and_set_header()
|
||||
|
||||
打开MindRecord文件准备写入并且设置header。该函数仅用于并行写入,并在 `write_raw_data` 函数之前调用。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMSetHeaderError** - 设置MindRecord文件的header失败。
|
||||
|
||||
|
||||
.. py:method:: open_for_append(file_name)
|
||||
|
||||
打开MindRecord文件,准备追加数据。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str) - MindRecord格式的数据集文件的路径。
|
||||
|
||||
**返回:**
|
||||
|
||||
FileWriter,MindRecord文件的写对象。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 无效。
|
||||
- **FileNameError** - MindRecord文件路径中包含无效字符。
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMOpenForAppendError** - 打开MindRecord文件追加数据失败。
|
||||
|
||||
|
||||
.. py:method:: set_header_size(header_size)
|
||||
|
||||
设置MindRecord文件的header,其中包含shard信息、schema信息、page的元信息等。
|
||||
header越大,MindRecord文件可以存储更多的元信息。如果header大于默认大小(16MB),需要调用本函数来设置合适的大小。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **header_size** (int) - header大小,可设置范围为16*1024(16KB)和128*1024*1024(128MB)。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMInvalidHeaderSizeError** - 设置header大小失败。
|
||||
|
||||
|
||||
.. py:method:: set_page_size(page_size)
|
||||
|
||||
设置存储数据的page大小,page分为两种类型:raw page和blob page。
|
||||
page越大,page可以存储更多的数据。如果单个样本大于默认大小(32MB),需要调用本函数来设置合适的大小。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **page_size** (int) - page大小,可设置范围为32*1024(32KB)和256*1024*1024(256MB)。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMInvalidPageSizeError** - 设置page大小失败。
|
||||
|
||||
|
||||
.. py:method:: write_raw_data(raw_data, parallel_writer=False)
|
||||
|
||||
根据schema校验用户自定义数据后,将数据转换为一系列连续的MindRecord格式的数据集文件。
|
||||
|
||||
.. note::
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **raw_data** (list[dict]) - 用户自定义数据的列表。
|
||||
- **parallel_writer** (bool,可选) - 如果为True,则并行写入用户自定义数据。默认值:False。。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamTypeError** - 索引字段无效。
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMValidateDataError** - 数据校验失败。
|
||||
- **MRMSetHeaderError** - 设置MindRecord文件的header失败。
|
||||
- **MRMWriteDatasetError** - 写入MindRecord格式的数据集失败。
|
||||
|
||||
|
||||
.. py:class:: mindspore.mindrecord.FileWriter(file_name, shard_num=1)
|
||||
|
||||
将用户自定义的数据转为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
生成MindRecord文件后,如果修改文件名,可能会导致读取文件失败。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str) - 转换生成的MindRecord文件路径。
|
||||
- **shard_num** (int,可选) - 生成MindRecord的文件个数。默认值:1。取值范围为[1, 1000]。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 或 `shard_num` 无效。
|
||||
|
||||
|
||||
.. py:method:: add_index(index_fields)
|
||||
|
||||
指定schema中的字段作为索引来加速MindRecord文件的读取。schema可以通过 `add_schema` 通过来添加。
|
||||
|
||||
.. note::
|
||||
- 索引字段应为Primitive类型,例如 `int` 、`float` 、`str` 。
|
||||
- 如果不调用该函数,则默认将schema中所有的Primitive类型的字段设置为索引。
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **index_fields** (list[str]) - schema中的字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamTypeError** - 索引字段无效。
|
||||
- **MRMDefineIndexError** - 索引字段不是Primitive类型。
|
||||
- **MRMAddIndexError** - 无法添加索引字段。
|
||||
- **MRMGetMetaError** - 未设置schema或无法获取schema。
|
||||
|
||||
|
||||
.. py:method:: add_schema(content, desc=None)
|
||||
|
||||
增加描述用户自定义数据的schema。
|
||||
|
||||
.. note::
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **content** (dict) - schema内容的字典。
|
||||
- **desc** (str,可选)) - schema的描述字符。默认值:None。
|
||||
|
||||
**返回:**
|
||||
|
||||
int,schema ID。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMInvalidSchemaError** - schema无效。
|
||||
- **MRMBuildSchemaError** - 构建schema失败。
|
||||
- **MRMAddSchemaError** - 添加schema失败。
|
||||
|
||||
|
||||
.. py:method:: commit()
|
||||
|
||||
将内存中的数据同步到磁盘,并生成相应的数据库文件。
|
||||
|
||||
.. note::
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMSetHeaderError** - 设置MindRecord文件的header失败。
|
||||
- **MRMIndexGeneratorError** - 创建索引Generator失败。
|
||||
- **MRMGenerateIndexError** - 写入数据库失败。
|
||||
- **MRMCommitError** - 数据同步到磁盘失败。
|
||||
|
||||
|
||||
.. py:method:: open_and_set_header()
|
||||
|
||||
打开MindRecord文件准备写入并且设置header。该函数仅用于并行写入,并在 `write_raw_data` 函数之前调用。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMSetHeaderError** - 设置MindRecord文件的header失败。
|
||||
|
||||
|
||||
.. py:method:: open_for_append(file_name)
|
||||
|
||||
打开MindRecord文件,准备追加数据。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str) - MindRecord格式的数据集文件的路径。
|
||||
|
||||
**返回:**
|
||||
|
||||
FileWriter,MindRecord文件的写对象。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 无效。
|
||||
- **FileNameError** - MindRecord文件路径中包含无效字符。
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMOpenForAppendError** - 打开MindRecord文件追加数据失败。
|
||||
|
||||
|
||||
.. py:method:: set_header_size(header_size)
|
||||
|
||||
设置MindRecord文件的header,其中包含shard信息、schema信息、page的元信息等。
|
||||
header越大,MindRecord文件可以存储更多的元信息。如果header大于默认大小(16MB),需要调用本函数来设置合适的大小。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **header_size** (int) - header大小,可设置范围为16*1024(16KB)和128*1024*1024(128MB)。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMInvalidHeaderSizeError** - 设置header大小失败。
|
||||
|
||||
|
||||
.. py:method:: set_page_size(page_size)
|
||||
|
||||
设置存储数据的page大小,page分为两种类型:raw page和blob page。
|
||||
page越大,page可以存储更多的数据。如果单个样本大于默认大小(32MB),需要调用本函数来设置合适的大小。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **page_size** (int) - page大小,可设置范围为32*1024(32KB)和256*1024*1024(256MB)。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMInvalidPageSizeError** - 设置page大小失败。
|
||||
|
||||
|
||||
.. py:method:: write_raw_data(raw_data, parallel_writer=False)
|
||||
|
||||
根据schema校验用户自定义数据后,将数据转换为一系列连续的MindRecord格式的数据集文件。
|
||||
|
||||
.. note::
|
||||
请参考类的示例:`mindspore.mindrecord.FileWriter`。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **raw_data** (list[dict]) - 用户自定义数据的列表。
|
||||
- **parallel_writer** (bool,可选) - 如果为True,则并行写入用户自定义数据。默认值:False。。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamTypeError** - 索引字段无效。
|
||||
- **MRMOpenError** - 打开MindRecord文件失败。
|
||||
- **MRMValidateDataError** - 数据校验失败。
|
||||
- **MRMSetHeaderError** - 设置MindRecord文件的header失败。
|
||||
- **MRMWriteDatasetError** - 写入MindRecord格式的数据集失败。
|
||||
|
||||
|
|
|
@ -1,39 +1,39 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.ImageNetToMR(map_file, image_dir, destination, partition_number=1)
|
||||
|
||||
将ImageNet数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `Converting the ImageNet Dataset <https:// www.mindspore.cn/docs/programming_guide/en/master/dataset_conversion.html#converting-the-imagenet-dataset>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **map_file** (str) - 标签映射文件的路径。映射文件内容如下:
|
||||
|
||||
.. code-block::
|
||||
|
||||
n02119789 0
|
||||
n02100735 1
|
||||
n02110185 2
|
||||
n02096294 3
|
||||
|
||||
- **image_dir** (str) - ImageNet数据集的目录路径,目录中包含类似n02119789、n02100735、n02110185和n02096294的子目录。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径
|
||||
- **partition_number** (int,可选) - 生成MindRecord的文件个数。默认值:1。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `map_file` 、`image_dir` 或 `destination` 无效。
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从ImageNet数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,ImageNet数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.ImageNetToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
.. py:class:: mindspore.mindrecord.ImageNetToMR(map_file, image_dir, destination, partition_number=1)
|
||||
|
||||
将ImageNet数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `Converting the ImageNet Dataset <https:// www.mindspore.cn/docs/programming_guide/en/master/dataset_conversion.html#converting-the-imagenet-dataset>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **map_file** (str) - 标签映射文件的路径。映射文件内容如下:
|
||||
|
||||
.. code-block::
|
||||
|
||||
n02119789 0
|
||||
n02100735 1
|
||||
n02110185 2
|
||||
n02096294 3
|
||||
|
||||
- **image_dir** (str) - ImageNet数据集的目录路径,目录中包含类似n02119789、n02100735、n02110185和n02096294的子目录。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径
|
||||
- **partition_number** (int,可选) - 生成MindRecord的文件个数。默认值:1。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `map_file` 、`image_dir` 或 `destination` 无效。
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从ImageNet数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,ImageNet数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.ImageNetToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
|
|
@ -1,106 +1,106 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.MindPage(file_name, num_consumer=4)
|
||||
|
||||
以分页方式读取MindRecord文件的类。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str) - MindRecord格式的数据集文件或文件列表。
|
||||
- **num_consumer** (int,可选) - 加载数据的并发数。默认值:4。不应小于1或大于处理器的核数。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 、`num_consumer` 或 `columns` 无效。
|
||||
- **MRMInitSegmentError** - 初始化ShardSegment失败。
|
||||
|
||||
|
||||
.. :py:attr: candidate_fields
|
||||
|
||||
返回用于数据分组的候选category字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[str],候选category 字段。
|
||||
|
||||
|
||||
.. :py:attr: category_field
|
||||
|
||||
返回用于数据分组的category字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[str],category字段。
|
||||
|
||||
|
||||
.. py:method:: get_category_fields()
|
||||
|
||||
返回用于数据分组的候选category字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[str],候选category字段。
|
||||
|
||||
|
||||
.. py:method:: read_at_page_by_id(category_id, page, num_row)
|
||||
|
||||
以分页方式按category ID进行查询。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **category_id** (int) - category ID,参考`read_category_info`函数的返回值。
|
||||
- **page** (int) - 分页的索引。
|
||||
- **num_row** (int) - 每个分页的行数。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[dict],根据category ID查询的数据。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - 参数无效。
|
||||
- **MRMFetchDataError** - 无法按category ID获取数据。
|
||||
- **MRMUnsupportedSchemaError** - schema无效。
|
||||
|
||||
|
||||
.. py:method:: read_at_page_by_name(category_name, page, num_row)
|
||||
|
||||
以分页方式按category字段进行查询。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **category_name** (str) - category字段对应的字符,参考`read_category_info`函数的返回值。
|
||||
- **page** (int) - 分页的索引。
|
||||
- **num_row** (int) - 每个分页的行数。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[dict],根据category字段查询的数据。
|
||||
|
||||
|
||||
.. py:method:: read_category_info()
|
||||
|
||||
当数据按指定的category字段进行分组时,返回category信息。
|
||||
|
||||
**返回:**
|
||||
|
||||
str,分组信息的描述。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMReadCategoryInfoError** - 读取category信息失败。
|
||||
|
||||
|
||||
.. py:method:: set_category_field(category_field)
|
||||
|
||||
设置category字段。
|
||||
|
||||
.. note::
|
||||
必须是候选category字段。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **category_field** (str) - category字段名称。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED
|
||||
|
||||
.. py:class:: mindspore.mindrecord.MindPage(file_name, num_consumer=4)
|
||||
|
||||
以分页方式读取MindRecord文件的类。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **file_name** (str) - MindRecord格式的数据集文件或文件列表。
|
||||
- **num_consumer** (int,可选) - 加载数据的并发数。默认值:4。不应小于1或大于处理器的核数。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - `file_name` 、`num_consumer` 或 `columns` 无效。
|
||||
- **MRMInitSegmentError** - 初始化ShardSegment失败。
|
||||
|
||||
|
||||
.. :py:attr: candidate_fields
|
||||
|
||||
返回用于数据分组的候选category字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[str],候选category 字段。
|
||||
|
||||
|
||||
.. :py:attr: category_field
|
||||
|
||||
返回用于数据分组的category字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[str],category字段。
|
||||
|
||||
|
||||
.. py:method:: get_category_fields()
|
||||
|
||||
返回用于数据分组的候选category字段。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[str],候选category字段。
|
||||
|
||||
|
||||
.. py:method:: read_at_page_by_id(category_id, page, num_row)
|
||||
|
||||
以分页方式按category ID进行查询。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **category_id** (int) - category ID,参考 `read_category_info` 函数的返回值。
|
||||
- **page** (int) - 分页的索引。
|
||||
- **num_row** (int) - 每个分页的行数。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[dict],根据category ID查询的数据。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ParamValueError** - 参数无效。
|
||||
- **MRMFetchDataError** - 无法按category ID获取数据。
|
||||
- **MRMUnsupportedSchemaError** - schema无效。
|
||||
|
||||
|
||||
.. py:method:: read_at_page_by_name(category_name, page, num_row)
|
||||
|
||||
以分页方式按category字段进行查询。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **category_name** (str) - category字段对应的字符,参考 `read_category_info` 函数的返回值。
|
||||
- **page** (int) - 分页的索引。
|
||||
- **num_row** (int) - 每个分页的行数。
|
||||
|
||||
**返回:**
|
||||
|
||||
list[dict],根据category字段查询的数据。
|
||||
|
||||
|
||||
.. py:method:: read_category_info()
|
||||
|
||||
当数据按指定的category字段进行分组时,返回category信息。
|
||||
|
||||
**返回:**
|
||||
|
||||
str,分组信息的描述。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **MRMReadCategoryInfoError** - 读取category信息失败。
|
||||
|
||||
|
||||
.. py:method:: set_category_field(category_field)
|
||||
|
||||
设置category字段。
|
||||
|
||||
.. note::
|
||||
必须是候选category字段。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **category_field** (str) - category字段名称。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,SUCCESS或FAILED
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.MnistToMR(source, destination, partition_number=1)
|
||||
|
||||
将MNIST数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 包含t10k-images-idx3-ubyte.gz、train-images-idx3-ubyte.gz、t10k-labels-idx1-ubyte.gz和train-labels-idx1-ubyte.gz数据集文件的目录路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
- **partition_number** (int,可选) - 生成MindRecord的文件个数。默认值:1。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 、 `destination` 、 `partition_number` 无效。
|
||||
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从MNIST数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,MNIST数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.MnistToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
.. py:class:: mindspore.mindrecord.MnistToMR(source, destination, partition_number=1)
|
||||
|
||||
将MNIST数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 包含t10k-images-idx3-ubyte.gz、train-images-idx3-ubyte.gz、t10k-labels-idx1-ubyte.gz和train-labels-idx1-ubyte.gz数据集文件的目录路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
- **partition_number** (int,可选) - 生成MindRecord的文件个数。默认值:1。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `source` 、 `destination` 、 `partition_number` 无效。
|
||||
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从MNIST数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,MNIST数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.MnistToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
|
||||
.. py:class:: mindspore.mindrecord.TFRecordToMR(source, destination, feature_dict, bytes_fields=None
|
||||
|
||||
将TFRecord格式数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换TFRecord数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换TFRecord数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的TFRecord文件路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
- **feature_dict** (dict) - TFRecord的feature类别的字典,不支持`VarLenFeature`类别。
|
||||
- **bytes_fields** (list,可选) - `feature_dict` 中的字节字段,可以为字节类型的图像字段。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - 无效参数。
|
||||
- **Exception** - 找不到TensorFlow模块或其版本不正确。
|
||||
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从TFRecord格式数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,TFRecord格式的数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: tfrecord_iterator()
|
||||
|
||||
生成一个字典,其key是schema中的字段,value是数据。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dict,key与schema中字段名相同的数据字典。
|
||||
|
||||
|
||||
.. py:method:: tfrecord_iterator_oldversion()
|
||||
|
||||
生成一个字典,其中key是schema中的字段,value是数据。该函数适用于早于2.1.0版本的TensorFlow。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dict,key与schema中字段名相同的数据字典。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.TFRecordToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
||||
.. py:class:: mindspore.mindrecord.TFRecordToMR(source, destination, feature_dict, bytes_fields=None)
|
||||
|
||||
将TFRecord格式数据集转换为MindRecord格式数据集的类。
|
||||
|
||||
.. note::
|
||||
示例的详细信息,请参见 `转换TFRecord数据集 <https://mindspore.cn/docs/programming_guide/zh-CN/master/dataset_conversion.html#转换TFRecord数据集>`_。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **source** (str) - 待转换的TFRecord文件路径。
|
||||
- **destination** (str) - 转换生成的MindRecord文件路径。
|
||||
- **feature_dict** (dict) - TFRecord的feature类别的字典,不支持 `VarLenFeature` 类别。
|
||||
- **bytes_fields** (list,可选) - `feature_dict` 中的字节字段,可以为字节类型的图像字段。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - 无效参数。
|
||||
- **Exception** - 找不到TensorFlow模块或其版本不正确。
|
||||
|
||||
|
||||
.. py:method:: run()
|
||||
|
||||
执行从TFRecord格式数据集到MindRecord格式数据集的转换。
|
||||
|
||||
**返回:**
|
||||
|
||||
MSRStatus,TFRecord格式的数据集是否成功转换为MindRecord格式数据集。
|
||||
|
||||
|
||||
.. py:method:: tfrecord_iterator()
|
||||
|
||||
生成一个字典,其key是schema中的字段,value是数据。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dict,key与schema中字段名相同的数据字典。
|
||||
|
||||
|
||||
.. py:method:: tfrecord_iterator_oldversion()
|
||||
|
||||
生成一个字典,其中key是schema中的字段,value是数据。该函数适用于早于2.1.0版本的TensorFlow。
|
||||
|
||||
**返回:**
|
||||
|
||||
Dict,key与schema中字段名相同的数据字典。
|
||||
|
||||
|
||||
.. py:method:: transform()
|
||||
|
||||
:func: `mindspore.mindrecord.TFRecordToMR.run` 函数的包装函数来保证异常时正常退出。
|
||||
|
|
|
@ -235,8 +235,7 @@ Boost能够自动加速网络,如减少BN/梯度冻结/累积梯度等。
|
|||
- **network** (Cell) – 训练网络。
|
||||
- **optimizer** (Union[Cell]) – 用于更新权重的优化器。
|
||||
|
||||
.. py:method:: freeze_cell(reducer_flag, network, optimizer, sens, grad, use_grad_accumulation, mean=None, degree=None,
|
||||
max_accumulation_step=1)
|
||||
.. py:method:: freeze_cell(reducer_flag, network, optimizer, sens, grad, use_grad_accumulation, mean=None, degree=None, max_accumulation_step=1)
|
||||
|
||||
提供带梯度冻结的网络Cell。
|
||||
|
||||
|
|
|
@ -4,5 +4,21 @@ mindspore.nn.transformer
|
|||
.. note::
|
||||
Transformer Networks. This is an experimental interface that is subject to change or deletion.
|
||||
|
||||
.. include:: transformer/mindspore.nn.AttentionMask.rst
|
||||
.. include:: transformer/mindspore.nn.VocabEmbedding.rst
|
||||
.. include:: transformer/mindspore.nn.MultiHeadAttention.rst
|
||||
.. include:: transformer/mindspore.nn.FeedForward.rst
|
||||
.. include:: transformer/mindspore.nn.TransformerEncoder.rst
|
||||
.. include:: transformer/mindspore.nn.TransformerDecoder.rst
|
||||
.. include:: transformer/mindspore.nn.TransformerEncoderLayer.rst
|
||||
.. include:: transformer/mindspore.nn.TransformerDecoderLayer.rst
|
||||
.. include:: transformer/mindspore.nn.Transformer.rst
|
||||
.. include:: transformer/mindspore.nn.TransformerOpParallelConfig.rst
|
||||
.. include:: transformer/mindspore.nn.EmbeddingOpParallelConfig.rst
|
||||
.. include:: transformer/mindspore.nn.CrossEntropyLoss.rst
|
||||
.. include:: transformer/mindspore.nn.OpParallelConfig.rst
|
||||
.. include:: transformer/mindspore.nn.FixedSparseAttention.rst
|
||||
.. include:: transformer/mindspore.nn.MoEConfig.rst
|
||||
|
||||
.. automodule:: mindspore.nn.transformer
|
||||
:members:
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
获取算法参数配置属性。
|
||||
|
||||
注:
|
||||
.. note::
|
||||
属性名称为必填项。此接口仅在AUTO_PARALLEL模式下工作。
|
||||
|
||||
**参数:**
|
||||
|
@ -27,10 +27,11 @@
|
|||
|
||||
重置算法参数属性。
|
||||
|
||||
注:
|
||||
.. note::
|
||||
此接口仅在AUTO_PARALLEL模式下工作。
|
||||
|
||||
重置后,属性值为:
|
||||
|
||||
--fully_use_devices:True
|
||||
--elementwise_op_strategy_follow:False
|
||||
--enable_algo_approxi:False
|
||||
|
@ -43,7 +44,7 @@
|
|||
|
||||
设置并行策略搜索算法中的参数。有关典型用法,请参见mindspore/tests/ut/python/parallel/test_auto_parallel_resnet.py。
|
||||
|
||||
注:
|
||||
.. note::
|
||||
属性名称为必填项。此接口仅在AUTO_PARALLEL模式下工作。
|
||||
|
||||
**参数:**
|
||||
|
|
|
@ -21,7 +21,7 @@ mindspore.nn.AvgPool1d
|
|||
- **stride** (int) - 池化操作的移动步长,数据类型为整型。默认值:1。
|
||||
- **pad_mode** (str) - 指定池化的填充方式,可选值为"same"或"valid",不区分大小写。默认值:"valid"。
|
||||
|
||||
- **same** - 输出的宽度于输入整数`stride`后的值相同。
|
||||
- **same** - 输出的宽度于输入整数 `stride` 后的值相同。
|
||||
- **valid** - 在不填充的前提下返回有效计算所得的输出。不满足计算的多余像素会被丢弃。
|
||||
|
||||
**输入:**
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
|
||||
编译并运行Cell,输入需与construct中定义的输入一致。
|
||||
|
||||
注:不推荐使用该函数,建议直接调用Cell实例
|
||||
.. note::不推荐使用该函数,建议直接调用Cell实例
|
||||
|
||||
**参数:**
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ mindspore.nn.MaxPool1d
|
|||
- **stride** (int) - 池化操作的移动步长,数据类型为整型。默认值:1。
|
||||
- **pad_mode** (str) - 指定池化填充模式,取值为"same"或"valid",不区分大小写。默认值:"valid"。
|
||||
|
||||
- **same** - 输出的宽度于输入整数`stride`后的值相同。
|
||||
- **same** - 输出的宽度于输入整数 `stride` 后的值相同。
|
||||
- **valid** - 在不填充的前提下返回有效计算所得的输出。不满足计算的多余像素会被丢弃。
|
||||
|
||||
**输入:**
|
||||
|
|
|
@ -20,7 +20,7 @@ mindspore.nn.MaxPool2d
|
|||
- **stride** (Union[int, tuple[int]]) - 池化操作的移动步长,如果为整数,则代表池化核的高和宽方向的移动步长。如果为tuple,其值必须包含两个整数值分别表示池化核的高和宽的移动步长。默认值:1。
|
||||
- **pad_mode** (str) - 指定池化填充模式,取值为"same"或"valid",不区分大小写。默认值:"valid"。
|
||||
|
||||
- **same** - 输出的宽度于输入整数`stride`后的值相同。
|
||||
- **same** - 输出的宽度于输入整数 `stride` 后的值相同。
|
||||
- **valid** - 在不填充的前提下返回有效计算所得的输出。不满足计算的多余像素会被丢弃。
|
||||
|
||||
- **data_format** (str) - 输入数据格式可为'NHWC'或'NCHW'。默认值:'NCHW'。
|
||||
|
|
|
@ -21,7 +21,7 @@ mindspore.nn.PReLU
|
|||
|
||||
**参数:**
|
||||
|
||||
- **channel** (int) - 可训练参数:math:`w`的数量。它可以是int,值是1或输入Tensor `x` 的通道数。默认值:1。
|
||||
- **channel** (int) - 可训练参数 :math:`w` 的数量。它可以是int,值是1或输入Tensor `x` 的通道数。默认值:1。
|
||||
- **w** (Union[float, list, Tensor]) - 参数的初始值。它可以是float、float list或与输入Tensor `x` 具有相同数据类型的Tensor。默认值:0.25。
|
||||
|
||||
**输入:**
|
||||
|
|
|
@ -9,9 +9,9 @@ mindspore.ops.PrimitiveWithInfer
|
|||
|
||||
如果未定义__infer__(),则可以定义infer_shape()和infer_dtype()来描述shape和类型的推断逻辑。infer_value()用于常量传播。
|
||||
|
||||
**参数:**
|
||||
**参数:**
|
||||
|
||||
- **name** (str) - 当前Primitive的名称。
|
||||
- **name** (str) - 当前Primitive的名称。
|
||||
|
||||
.. py:method:: infer_dtype(*args)
|
||||
|
||||
|
@ -50,4 +50,4 @@ mindspore.ops.PrimitiveWithInfer
|
|||
|
||||
**返回:**
|
||||
|
||||
输出的值。如果编译时无法推断该值,返回`None`。
|
||||
输出的值。如果编译时无法推断该值,返回 `None` 。
|
||||
|
|
|
@ -14,4 +14,4 @@ mindspore.ops.get_vm_impl_fn
|
|||
|
||||
**返回:**
|
||||
|
||||
函数,虚拟实现函数。
|
||||
函数,虚拟实现函数。
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
..py:class:: mindspore.parallel.nn.AttentionMask(seq_length, parallel_config=default_dpmp_config)
|
||||
|
||||
从输入掩码中获取下三角矩阵。输入掩码是值为1或0的二维Tensor (batch_size, seq_length)。1表示当前位置是一个有效的标记,其他值则表示当前位置不是一个有效的标记。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **seq_length** (int) - 表示输入Tensor的序列长度。
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **input_mask** (Tensor) - 掩码矩阵,shape为(batch_size, seq_length),表示每个位置是否为有效输入。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,表示shape为(batch_size, seq_length, seq_length)的注意力掩码矩阵。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `seq_length` 不是整数。
|
||||
- **ValueError** - `seq_length` 不是正数。
|
||||
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
|
||||
.. py:class:: mindspore.nn.AttentionMask(seq_length, parallel_config=default_dpmp_config)
|
||||
|
||||
从输入掩码中获取下三角矩阵。输入掩码是值为1或0的二维Tensor (batch_size, seq_length)。1表示当前位置是一个有效的标记,其他值则表示当前位置不是一个有效的标记。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **seq_length** (int) - 表示输入Tensor的序列长度。
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **input_mask** (Tensor) - 掩码矩阵,shape为(batch_size, seq_length),表示每个位置是否为有效输入。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,表示shape为(batch_size, seq_length, seq_length)的注意力掩码矩阵。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `seq_length` 不是整数。
|
||||
- **ValueError** - `seq_length` 不是正数。
|
||||
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
.. py:class:: mindspore.parallel.nn.CrossEntropyLoss(parallel_config=default_dpmp_config)
|
||||
|
||||
计算输入和输出之间的交叉熵损失。
|
||||
|
||||
**参数:**
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **logits** (Tensor) - shape为(N, C)的Tensor。表示的输出logits。其中N表示任意大小的维度,C表示类别个数。数据类型必须为float16或float32。
|
||||
- **labels** (Tensor) - shape为(N, )的Tensor。表示样本的真实标签,其中每个元素的取值区间为[0,C)。
|
||||
- **input_mask** (Tensor) - shape为(N, )的Tensor。input_mask表示是否有填充输入。1表示有效,0表示无效,其中元素值为0的位置不会计算进损失值。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,表示对应的交叉熵损失。
|
||||
.. py:class:: mindspore.nn.transformer.CrossEntropyLoss(parallel_config=default_dpmp_config)
|
||||
|
||||
计算输入和输出之间的交叉熵损失。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **logits** (Tensor) - shape为(N, C)的Tensor。表示的输出logits。其中N表示任意大小的维度,C表示类别个数。数据类型必须为float16或float32。
|
||||
- **labels** (Tensor) - shape为(N, )的Tensor。表示样本的真实标签,其中每个元素的取值区间为[0,C)。
|
||||
- **input_mask** (Tensor) - shape为(N, )的Tensor。input_mask表示是否有填充输入。1表示有效,0表示无效,其中元素值为0的位置不会计算进损失值。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,表示对应的交叉熵损失。
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
.. py:class:: mindspore.parallel.nn.EmbeddingOpParallelConfig(data_parallel=1, model_parallel=1, vocab_emb_dp=True)
|
||||
|
||||
`VocabEmbedding` 类中的并行配置。当vocab_emb_dp为True时,设置Embedding查找为数据并行,其中model_parallel参数会被忽略。当vocab_emb_dp为False时,在Embedding表的第0轴进行按model_parallel的大小进行切分。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_parallel** (int) - 表示数据并行度。默认值:1。
|
||||
- **model_parallel** (int) - 表示模型平行度。默认值:1。
|
||||
- **vocab_emb_dp** (bool) - 表示模型并行或数据并行中的Shard embedding。默认值:True。
|
||||
|
||||
.. py:method:: dp_mp_config()
|
||||
|
||||
获取包含有data_parallel和model_parallel属性的DPMPlConfig类。
|
||||
.. py:class:: mindspore.nn.transformer.EmbeddingOpParallelConfig(data_parallel=1, model_parallel=1, vocab_emb_dp=True)
|
||||
|
||||
`VocabEmbedding` 类中的并行配置。当vocab_emb_dp为True时,设置Embedding查找为数据并行,其中model_parallel参数会被忽略。当vocab_emb_dp为False时,在Embedding表的第0轴进行按model_parallel的大小进行切分。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_parallel** (int) - 表示数据并行度。默认值:1。
|
||||
- **model_parallel** (int) - 表示模型平行度。默认值:1。
|
||||
- **vocab_emb_dp** (bool) - 表示模型并行或数据并行中的Shard embedding。默认值:True。
|
||||
|
||||
.. py:method:: dp_mp_config()
|
||||
|
||||
获取包含有data_parallel和model_parallel属性的DPMPlConfig类。
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
.. py:class:: mindspore.parallel.nn.FeedForward(hidden_size, ffn_hidden_size, dropout_rate, hidden_act="gelu", expert_num=1, param_init_type=mstype.float32, parallel_config=default_dpmp_config)
|
||||
|
||||
具有两层线性层的多层感知器,并行在最终输出上使用Dropout。第一层前馈层将输入维度从hidden_size投影到ffn_hidden_size,并在中间应用激活层。第二个线性将该维度从ffn_hidden_size投影到hidden_size。配置parallel_config之后,
|
||||
第一个前馈层的权重将在输入维度上被分片,第二个线性在输出维度上进行切分。总体过程如下
|
||||
|
||||
.. math:
|
||||
Dropout((xW_1+b_1)W_2 + b_2))
|
||||
|
||||
其中 :math:`W_1, W_2, b_1` 和 :math:`b_2` 为可训练参数。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **hidden_size** (int) - 表示输入的维度。
|
||||
- **ffn_hidden_size** (int) - 表示中间隐藏大小。
|
||||
- **dropout_rate** (float) - 表示第二个线性输出的丢弃率。
|
||||
- **hidden_act** (str) - 表示第一层前馈层的激活。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **expert_num** (int) - 表示线性中使用的专家数量。对于expert_num > 1用例,使用BatchMatMul。BatchMatMul中的第一个维度表示expert_num。默认值:1
|
||||
- **param_init_type** (dtype.Number) - 表示参数初始化类型。其值应为dtype.float32或dtype.float16。默认值:dtype.float32
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。更多详情,请参见 `OpParallelConfig` 。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - 应为 `[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]` 。表示浮点Tensor。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,表示映射后该层的输出。shape为 `[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]` 。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `hidden_act` 不是字符串。
|
||||
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
|
||||
- **ValueError** - `ffn_hidden_size` 不是parallel_config中model_parallel的倍数。
|
||||
- **ValueError** - `hidden_size` 不是parallel_config中model_parallel的倍数。
|
||||
.. py:class:: mindspore.nn.transformer.FeedForward(hidden_size, ffn_hidden_size, dropout_rate, hidden_act="gelu", expert_num=1, param_init_type=mstype.float32, parallel_config=default_dpmp_config)
|
||||
|
||||
具有两层线性层的多层感知器,并行在最终输出上使用Dropout。第一层前馈层将输入维度从hidden_size投影到ffn_hidden_size,并在中间应用激活层。第二个线性将该维度从ffn_hidden_size投影到hidden_size。配置parallel_config之后,
|
||||
第一个前馈层的权重将在输入维度上被分片,第二个线性在输出维度上进行切分。总体过程如下
|
||||
|
||||
.. math:
|
||||
Dropout((xW_1+b_1)W_2 + b_2))
|
||||
|
||||
其中 :math:`W_1, W_2, b_1` 和 :math:`b_2` 为可训练参数。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **hidden_size** (int) - 表示输入的维度。
|
||||
- **ffn_hidden_size** (int) - 表示中间隐藏大小。
|
||||
- **dropout_rate** (float) - 表示第二个线性输出的丢弃率。
|
||||
- **hidden_act** (str) - 表示第一层前馈层的激活。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **expert_num** (int) - 表示线性中使用的专家数量。对于expert_num > 1用例,使用BatchMatMul。BatchMatMul中的第一个维度表示expert_num。默认值:1
|
||||
- **param_init_type** (dtype.Number) - 表示参数初始化类型。其值应为dtype.float32或dtype.float16。默认值:dtype.float32
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。更多详情,请参见 `OpParallelConfig` 。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - 应为 `[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]` 。表示浮点Tensor。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,表示映射后该层的输出。shape为 `[batch, seq_length, hidden_size]` 或 `[batch * seq_length, hidden_size]` 。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `hidden_act` 不是字符串。
|
||||
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
|
||||
- **ValueError** - `ffn_hidden_size` 不是parallel_config中model_parallel的倍数。
|
||||
- **ValueError** - `hidden_size` 不是parallel_config中model_parallel的倍数。
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
.. py:class:: mindspore.parallel.nn.FixedSparseAttention(batch_size, num_heads, size_per_head, block_size, seq_length=1024, num_different_global_patterns=4, parallel_config=default_dpmp_config)
|
||||
|
||||
固定稀疏注意力层。
|
||||
|
||||
此接口实现了Sparse Transformer中使用的稀疏注意力原语。更多详情,请见论文(https://arxiv.org/abs/1904.10509)。
|
||||
|
||||
具体来说,它包括以下内容:
|
||||
1. 正常注意力的更快实现(不计算上三角,并且融合了许多操作)。
|
||||
2. 如论文Sparse Transformers所述,“分散”和“固定”注意力的实现。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入batch size的数量。
|
||||
- **num_heads** (int) - 表示注意力头数。
|
||||
- **block_size** (int) - 表示用来确定block size的整数。目前稀疏自注意力的实现基于稀疏块矩阵。此参数定义了稀疏矩阵块的大小。目前仅支持64。
|
||||
- **seq_length** (int) - 表示输入序列的长度。目前只支持1024。
|
||||
- **num_different_global_patterns** (int) - 表示用于确定不同的全局注意力数量。虽然全局注意力由局部的代表性的块决定,
|
||||
但由于有多个头,所以每个头都可以使用不同的全局代表。目前只支持4。
|
||||
- **size_per_head** (int) - 表示每个注意力头的向量大小。目前仅支持64和128。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **q** (Tensor) - Tensor query (:class:`mstype.fp16` [batch_size, seq_length, hidden_size]):表示上下文的query向量。
|
||||
- **k** (Tensor) - Tensor key (:class:`mstype.fp16` [batch_size, seq_length, hidden_size]):表示上下文的key向量。
|
||||
- **v** (Tensor) - Tensor value (:class:`mstype.fp16` [批次大小, seq_length, hidden_size]):表示上下文的value向量。
|
||||
- **attention_mask** (Tensor) - Float Tensor the mask of (:class:`mstype.fp32` , :class:`mstype.fp16` [batch_size, seq_length, seq_length]):
|
||||
表示掩码的下三角形矩阵。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape为[batch_size, seq_length, hidden_size]。
|
||||
.. py:class:: mindspore.nn.transformer.FixedSparseAttention(batch_size, num_heads, size_per_head, block_size, seq_length=1024, num_different_global_patterns=4, parallel_config=default_dpmp_config)
|
||||
|
||||
固定稀疏注意力层。
|
||||
|
||||
此接口实现了Sparse Transformer中使用的稀疏注意力原语。更多详情,请见论文(https://arxiv.org/abs/1904.10509)。
|
||||
|
||||
具体来说,它包括以下内容:
|
||||
|
||||
1. 正常注意力的更快实现(不计算上三角,并且融合了许多操作)。
|
||||
2. 如论文Sparse Transformers所述,“分散”和“固定”注意力的实现。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入batch size的数量。
|
||||
- **num_heads** (int) - 表示注意力头数。
|
||||
- **block_size** (int) - 表示用来确定block size的整数。目前稀疏自注意力的实现基于稀疏块矩阵。此参数定义了稀疏矩阵块的大小。目前仅支持64。
|
||||
- **seq_length** (int) - 表示输入序列的长度。目前只支持1024。
|
||||
- **num_different_global_patterns** (int) - 表示用于确定不同的全局注意力数量。虽然全局注意力由局部的代表性的块决定,
|
||||
但由于有多个头,所以每个头都可以使用不同的全局代表。目前只支持4。
|
||||
- **size_per_head** (int) - 表示每个注意力头的向量大小。目前仅支持64和128。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **q** (Tensor) - Tensor query (:class:`mstype.fp16` [batch_size, seq_length, hidden_size]):表示上下文的query向量。
|
||||
- **k** (Tensor) - Tensor key (:class:`mstype.fp16` [batch_size, seq_length, hidden_size]):表示上下文的key向量。
|
||||
- **v** (Tensor) - Tensor value (:class:`mstype.fp16` [批次大小, seq_length, hidden_size]):表示上下文的value向量。
|
||||
- **attention_mask** (Tensor) - Float Tensor the mask of (:class:`mstype.fp32` , :class:`mstype.fp16` [batch_size, seq_length, seq_length]):
|
||||
表示掩码的下三角形矩阵。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape为[batch_size, seq_length, hidden_size]。
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
.. py:class:: mindspore.parallel.nn.MoEConfig(expert_num=1, capacity_factor=1.1, aux_loss_factor=0.05, num_experts_chosen=1, noisy_policy=None, noisy_epsilon=1e-2)
|
||||
|
||||
MoE (Mixture of Expert)的配置。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **expert_num** (int) - 表示使用的专家数量。默认值:1。
|
||||
- **capacity_factor** (float) - 表示专家处理的容量关系,其值大于等于1.0。默认值:1.1。
|
||||
- **aux_loss_factor** (float) - 表示负载均衡损失(由路由器产生)的平衡系数。相乘的结果会加到总损失函数中。此系数的值小于1.0。默认值:0.05。
|
||||
- **num_experts_chosen** (int) - 表示每个标识选择的专家数量。默认值:1。
|
||||
.. py:class:: mindspore.nn.transformer.MoEConfig(expert_num=1, capacity_factor=1.1, aux_loss_factor=0.05, num_experts_chosen=1, noisy_policy=None, noisy_epsilon=1e-2)
|
||||
|
||||
MoE (Mixture of Expert)的配置。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **expert_num** (int) - 表示使用的专家数量。默认值:1。
|
||||
- **capacity_factor** (float) - 表示专家处理的容量关系,其值大于等于1.0。默认值:1.1。
|
||||
- **aux_loss_factor** (float) - 表示负载均衡损失(由路由器产生)的平衡系数。相乘的结果会加到总损失函数中。此系数的值小于1.0。默认值:0.05。
|
||||
- **num_experts_chosen** (int) - 表示每个标识选择的专家数量。默认值:1。
|
||||
|
|
|
@ -1,47 +1,46 @@
|
|||
.. py:class:: mindspore.parallel.nn.MultiHeadAttention(batch_size, src_seq_length, tgt_seq_length, hidden_size, num_heads, hidden_dropout_rate=0.1, attention_dropout_rate=0.1, compute_dtype=mstype.float16, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, use_past=False, parallel_config=default_dpmp_config)
|
||||
|
||||
论文 `Attention Is All You Need <https://arxiv.org/pdf/1706.03762v5.pdf>`_ 中所述的多头注意力的实现。给定src_seq_length长度的query向量,tgt_seq_length长度的key向量和value,注意力计算流程如下:
|
||||
|
||||
.. math:
|
||||
MultiHeadAttention(query, key, vector) = Dropout(Concat(head_1, \dots, head_h)W^O)
|
||||
|
||||
其中, `head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)` 。注意:输出层的投影计算中带有偏置参数。
|
||||
|
||||
如果query tensor、key tensor和value tensor相同,则上述即为自注意力机制的计算过程。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示训练批次的大小。
|
||||
- **src_seq_length** (int) - 表示query向量的序列长度。
|
||||
- **tgt_seq_length** (int) - 表示key向量和value向量的序列长度。
|
||||
- **hidden_size** (int) - 表示输入的向量大小。
|
||||
- **num_heads** (int) - 表示注意力机制中头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示最后dense输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **compute_dtype** (dtype.Number) - 表示dense中矩阵乘法的计算类型。默认值:dtype.float16。其值应为dtype.float32或dtype.float16。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。默认值:dtype.float32。其值应为dtype.float32或dtype.float16。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示softmax计算模块的类型。默认值:dtype.float32。 其值应为dtype.float32或dtype.float16。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。例如,如果我们有两个单词,想生成十个或以上单词。我们只需要计算一次这两个单词的状态,然后逐个生成下一个单词。当use_past为True时,有两个步骤可以执行预测。
|
||||
第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True,并传递完整的输入。然后,通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时,传递step的输入tensor,并对其进行循环。默认值:False
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为`default_dpmp_config`,表示一个带有参数的`OpParallelConfig`实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **query_tensor** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的query向量。否则,shape必须为(batch_size, 1, hidden_size)。
|
||||
- **key_tensor** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的key向量。否则,shape必须为(batch_size, 1, hidden_size)。
|
||||
- **value_tensor** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的value向量。否则,shape必须为(batch_size, 1, hidden_size)。
|
||||
- **attention_mask** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, src_seq_length, tgt_seq_length)的注意力掩码矩阵。否则,shape必须为(batch_size, 1, tgt_seq_length)。
|
||||
- **key_past** (Tensor) - shape为(batch_size, num_heads, size_per_head, tgt_seq_length)的Float16 tensor, 表示过去所计算的key向量。
|
||||
当use_past为True时,需要传入非None值用于增量预测。默认值为None。
|
||||
- **value_past** (Tensor) - shape为(batch_size, num_heads, tgt_seq_length, size_per_head)的Float16 tensor,表示过去所计算的value向量。
|
||||
当use_past为True时,需要传入非None值用于增量预测。默认值为None。
|
||||
- **batch_valid_length** (Tensor) - shape为(batch_size,)的Int32 tensor,表示已经计算的token索引。
|
||||
当use_past为True时,需要传入非None值用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - Tensor。use_past为False或is_first_iteration为True时,表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的层输出的float tensor。否则,shape将为(batch_size, 1, hidden_size)。
|
||||
|
||||
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。
|
||||
.. py:class:: mindspore.nn.transformer.MultiHeadAttention(batch_size, src_seq_length, tgt_seq_length, hidden_size, num_heads, hidden_dropout_rate=0.1, attention_dropout_rate=0.1, compute_dtype=mstype.float16, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, use_past=False, parallel_config=default_dpmp_config)
|
||||
|
||||
论文 `Attention Is All You Need <https://arxiv.org/pdf/1706.03762v5.pdf>`_ 中所述的多头注意力的实现。给定src_seq_length长度的query向量,tgt_seq_length长度的key向量和value,注意力计算流程如下:
|
||||
|
||||
.. math:
|
||||
MultiHeadAttention(query, key, vector) = Dropout(Concat(head_1, \dots, head_h)W^O)
|
||||
|
||||
其中, `head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)` 。注意:输出层的投影计算中带有偏置参数。
|
||||
|
||||
如果query tensor、key tensor和value tensor相同,则上述即为自注意力机制的计算过程。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示训练批次的大小。
|
||||
- **src_seq_length** (int) - 表示query向量的序列长度。
|
||||
- **tgt_seq_length** (int) - 表示key向量和value向量的序列长度。
|
||||
- **hidden_size** (int) - 表示输入的向量大小。
|
||||
- **num_heads** (int) - 表示注意力机制中头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示最后dense输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **compute_dtype** (dtype.Number) - 表示dense中矩阵乘法的计算类型。默认值:dtype.float16。其值应为dtype.float32或dtype.float16。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。默认值:dtype.float32。其值应为dtype.float32或dtype.float16。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示softmax计算模块的类型。默认值:dtype.float32。 其值应为dtype.float32或dtype.float16。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。例如,如果我们有两个单词,想生成十个或以上单词。我们只需要计算一次这两个单词的状态,然后逐个生成下一个单词。当use_past为True时,有两个步骤可以执行预测。
|
||||
第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True,并传递完整的输入。然后,通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时,传递step的输入tensor,并对其进行循环。默认值:False
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为`default_dpmp_config`,表示一个带有参数的`OpParallelConfig`实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **query_tensor** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的query向量。否则,shape必须为(batch_size, 1, hidden_size)。
|
||||
- **key_tensor** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的key向量。否则,shape必须为(batch_size, 1, hidden_size)。
|
||||
- **value_tensor** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的value向量。否则,shape必须为(batch_size, 1, hidden_size)。
|
||||
- **attention_mask** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, src_seq_length, tgt_seq_length)的注意力掩码矩阵。否则,shape必须为(batch_size, 1, tgt_seq_length)。
|
||||
- **key_past** (Tensor) - shape为(batch_size, num_heads, size_per_head, tgt_seq_length)的Float16 tensor, 表示过去所计算的key向量。
|
||||
当use_past为True时,需要传入非None值用于增量预测。默认值为None。
|
||||
- **value_past** (Tensor) - shape为(batch_size, num_heads, tgt_seq_length, size_per_head)的Float16 tensor,表示过去所计算的value向量。
|
||||
当use_past为True时,需要传入非None值用于增量预测。默认值为None。
|
||||
- **batch_valid_length** (Tensor) - shape为(batch_size,)的Int32 tensor,表示已经计算的token索引。
|
||||
当use_past为True时,需要传入非None值用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - Tensor。use_past为False或is_first_iteration为True时,表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的层输出的float tensor。否则,shape将为(batch_size, 1, hidden_size)。
|
||||
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
.. py:class:: mindspore.parallel.nn.OpParallelConfig(data_parallel=1, model_parallel=1)
|
||||
|
||||
用于设置数据并行和模型并行的OpParallelConfig。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_parallel** (int) - 表示数据并行度。默认值:1
|
||||
- **model_parallel** (int) - 表示模型并行度。默认值:1
|
||||
.. py:class:: mindspore.nn.transformer.OpParallelConfig(data_parallel=1, model_parallel=1)
|
||||
|
||||
用于设置数据并行和模型并行的OpParallelConfig。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_parallel** (int) - 表示数据并行度。默认值:1
|
||||
- **model_parallel** (int) - 表示模型并行度。默认值:1
|
||||
|
|
|
@ -1,46 +1,46 @@
|
|||
.. py:class:: mindspore.parallel.nn.Transformer(hidden_size, batch_size, ffn_hidden_size, src_seq_length, tgt_seq_length, encoder_layers=3, decoder_layers=3, num_heads=2, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, hidden_act="gelu", post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, lambda_func=None, use_past=False, moe_config=default_moe_config, parallel_config=default_transformer_config)
|
||||
|
||||
Transformer模块,包括编码器和解码器。与原始的实现方式的区别在于该模块在实行层归一化之前使用了残差加法。默认的激活层为`gelu`。
|
||||
详细信息可参考 `Attention Is All You Need <https://arxiv.org/pdf/1706.03762v5.pdf>`_ 。
|
||||
|
||||
注:
|
||||
这是一个实验接口,可能会被更改或者删除。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入的批次大小。
|
||||
- **encoder_layers** (int) - 表示`TransformerEncoderLayer`的层数。
|
||||
- **decoder_layers** (int) - 表示`TransformerDecoderLayer`的层数。
|
||||
- **hidden_size** (int) - 表示输入向量的大小。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **src_seq_length** (int) - 表示编码器的输入Tensor的seq_length。
|
||||
- **tgt_seq_length** (int) - 表示解码器的输入Tensor的seq_length。
|
||||
- **num_heads** (int) - 表示注意力头的数量。默认值:2
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力机制中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **hidden_act** (str) - 表示前馈层的激活行为。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度融合,用户可以传递一个接受 `network` 、 `layer_id` 、 `offset` 、 `parallel_config` 和 `layers` 的函数。 `network(Cell)` 表示transformer块, `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块,则layer_id需要一个偏移。pipeline的默认设置为: `(layer_id + offset) // ((encoder_layers + decoder_length) / pipeline_stage)` 。
|
||||
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **encoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入Tensor。
|
||||
- **encoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **decoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。如果解码器层数为0,则此值应为None。
|
||||
- **decoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码,其中tgt_seq_length表示解码器的长度。如果解码器层为0,则shape为[batch_size, seq_length, hidden_size]的编码器的输出应为None。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示包含(`output`, `encoder_layer_present`, `encoder_layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - 如果只有编码器,则表示编码器层的输出logit。shape为[batch, src_seq_length, hidden_size] or [batch * src_seq_length, hidden_size]。如果有编码器和解码器,则输出来自于解码器层。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
|
||||
- **encoder_layer_present** (Tuple) - 大小为num_layers的元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的自注意力中的投影key向量和value向量的tensor。
|
||||
- **decoder_layer_present** (Tuple) - 大小为num_layers的元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的self attention中的投影key向量和value向量的tensor,或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor。如果未设置解码器,返回值将为None。
|
||||
.. py:class:: mindspore.nn.transformer.Transformer(hidden_size, batch_size, ffn_hidden_size, src_seq_length, tgt_seq_length, encoder_layers=3, decoder_layers=3, num_heads=2, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, hidden_act="gelu", post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, lambda_func=None, use_past=False, moe_config=default_moe_config, parallel_config=default_transformer_config)
|
||||
|
||||
Transformer模块,包括编码器和解码器。与原始的实现方式的区别在于该模块在实行层归一化之前使用了残差加法。默认的激活层为`gelu`。
|
||||
详细信息可参考 `Attention Is All You Need <https://arxiv.org/pdf/1706.03762v5.pdf>`_ 。
|
||||
|
||||
.. note::
|
||||
这是一个实验接口,可能会被更改或者删除。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入的批次大小。
|
||||
- **encoder_layers** (int) - 表示`TransformerEncoderLayer`的层数。
|
||||
- **decoder_layers** (int) - 表示`TransformerDecoderLayer`的层数。
|
||||
- **hidden_size** (int) - 表示输入向量的大小。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **src_seq_length** (int) - 表示编码器的输入Tensor的seq_length。
|
||||
- **tgt_seq_length** (int) - 表示解码器的输入Tensor的seq_length。
|
||||
- **num_heads** (int) - 表示注意力头的数量。默认值:2
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力机制中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **hidden_act** (str) - 表示前馈层的激活行为。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度融合,用户可以传递一个接受 `network` 、 `layer_id` 、 `offset` 、 `parallel_config` 和 `layers` 的函数。 `network(Cell)` 表示transformer块, `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块,则layer_id需要一个偏移。pipeline的默认设置为: `(layer_id + offset) // ((encoder_layers + decoder_length) / pipeline_stage)` 。
|
||||
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **encoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入Tensor。
|
||||
- **encoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **decoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。如果解码器层数为0,则此值应为None。
|
||||
- **decoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码,其中tgt_seq_length表示解码器的长度。如果解码器层为0,则shape为[batch_size, seq_length, hidden_size]的编码器的输出应为None。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示包含(`output`, `encoder_layer_present`, `encoder_layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - 如果只有编码器,则表示编码器层的输出logit。shape为[batch, src_seq_length, hidden_size] or [batch * src_seq_length, hidden_size]。如果有编码器和解码器,则输出来自于解码器层。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
|
||||
- **encoder_layer_present** (Tuple) - 大小为num_layers的元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的自注意力中的投影key向量和value向量的tensor。
|
||||
- **decoder_layer_present** (Tuple) - 大小为num_layers的元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的self attention中的投影key向量和value向量的tensor,或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor。如果未设置解码器,返回值将为None。
|
||||
|
|
|
@ -1,41 +1,43 @@
|
|||
.. py:class:: mindspore.parallel.nn.TransformerDecoder(num_layers, batch_size, hidden_size, ffn_hidden_size, src_seq_length, tgt_seq_length, num_heads, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, hidden_act="gelu", lambda_func=None, use_past=False, offset=0, moe_config=default_moe_config, parallel_config=default_transformer_config)
|
||||
|
||||
Transformer中的解码器模块,为多层堆叠的 `TransformerDecoderLayer` ,包括多头自注意力层、交叉注意力层和前馈层。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入Tensor的批次大小。
|
||||
- **num_layers** (int) - 表示 `TransformerDecoderLayer` 的层数。
|
||||
- **hidden_size** (int) - 表示输入的隐藏大小。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **src_seq_length** (int) - 表示输入源序列长度。
|
||||
- **tgt_seq_length** (int) - 表示输入目标序列长度。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **offset** (int) - 表示`decoder`的初始层索引偏移值。其用于设置梯度聚合的融合值和流水线并行的stage值,使其不与编码器层的相关属性重叠。
|
||||
- **lambda_func** - 表示确定梯度融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合,用户可以传递一个接受 `network` 、 `layer_id` 、 `offset` 、 `parallel_config` 和 `layers` 的函数。 `network(Cell)` 表示transformer块, `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块,则layer_index需要一个偏置。pipeline的默认设置为: `(layer_id + offset) // (layers / pipeline_stage)` 。默认值:None
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **hidden_stats** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入tensor。
|
||||
- **attention_mask** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。
|
||||
注:当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码,其中tgt_seq_length表示解码器的长度。注:当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - 输出的logit。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
|
||||
- **layer_present** (Tuple) - 大小为层数的元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor,或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor。
|
||||
.. py:class:: mindspore.nn.transformer.TransformerDecoder(num_layers, batch_size, hidden_size, ffn_hidden_size, src_seq_length, tgt_seq_length, num_heads, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, hidden_act="gelu", lambda_func=None, use_past=False, offset=0, moe_config=default_moe_config, parallel_config=default_transformer_config)
|
||||
|
||||
Transformer中的解码器模块,为多层堆叠的 `TransformerDecoderLayer` ,包括多头自注意力层、交叉注意力层和前馈层。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入Tensor的批次大小。
|
||||
- **num_layers** (int) - 表示 `TransformerDecoderLayer` 的层数。
|
||||
- **hidden_size** (int) - 表示输入的隐藏大小。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **src_seq_length** (int) - 表示输入源序列长度。
|
||||
- **tgt_seq_length** (int) - 表示输入目标序列长度。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **offset** (int) - 表示`decoder`的初始层索引偏移值。其用于设置梯度聚合的融合值和流水线并行的stage值,使其不与编码器层的相关属性重叠。
|
||||
- **lambda_func** - 表示确定梯度融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合,用户可以传递一个接受 `network` 、 `layer_id` 、 `offset` 、 `parallel_config` 和 `layers` 的函数。 `network(Cell)` 表示transformer块, `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块,则layer_index需要一个偏置。pipeline的默认设置为: `(layer_id + offset) // (layers / pipeline_stage)` 。默认值:None
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **hidden_stats** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入tensor。
|
||||
- **attention_mask** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。
|
||||
|
||||
.. note::当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
|
||||
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码,其中tgt_seq_length表示解码器的长度。注:当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - 输出的logit。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
|
||||
- **layer_present** (Tuple) - 大小为层数的元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor,或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor。
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
.. py:class:: mindspore.parallel.nn.TransformerDecoderLayer(hidden_size, ffn_hidden_size, num_heads, batch_size, src_seq_length, tgt_seq_length, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, post_layernorm_residual=False, use_past=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, hidden_act="gelu", moe_config=default_moe_config, parallel_config=default_dpmp_config)
|
||||
|
||||
Transformer的解码器层。Transformer的解码器层上的单层的实现,包括自注意力层、交叉注意力层和前馈层。当encoder_output为None时,交叉注意力将无效。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入Tensor的批次大小。
|
||||
- **hidden_size** (int):表示输入的隐藏大小。
|
||||
- **src_seq_length** (int) - 表示输入源序列长度。
|
||||
- **tgt_seq_length** (int) - 表示输入目标序列长度。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。默认值:False
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **hidden_stats** (Tensor) - shape为[batch_size, tgt_seq_length, hidden_size]或[batch_size * tgt_seq_length, hidden_size]的输入tensor。
|
||||
- **decoder_mask** (Tensor) - shape为[batch_size, src_seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。注:当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码,其中tgt_seq_length表示解码器的长度。注:当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - 此层的输出logit。shape为[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]。
|
||||
- **layer_present** (Tensor) - 元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor,或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor。
|
||||
.. py:class:: mindspore.nn.transformer.TransformerDecoderLayer(hidden_size, ffn_hidden_size, num_heads, batch_size, src_seq_length, tgt_seq_length, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, post_layernorm_residual=False, use_past=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, hidden_act="gelu", moe_config=default_moe_config, parallel_config=default_dpmp_config)
|
||||
|
||||
Transformer的解码器层。Transformer的解码器层上的单层的实现,包括自注意力层、交叉注意力层和前馈层。当encoder_output为None时,交叉注意力将无效。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入Tensor的批次大小。
|
||||
- **hidden_size** (int):表示输入的隐藏大小。
|
||||
- **src_seq_length** (int) - 表示输入源序列长度。
|
||||
- **tgt_seq_length** (int) - 表示输入目标序列长度。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。默认值:False
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **hidden_stats** (Tensor) - shape为[batch_size, tgt_seq_length, hidden_size]或[batch_size * tgt_seq_length, hidden_size]的输入tensor。
|
||||
- **decoder_mask** (Tensor) - shape为[batch_size, src_seq_length, seq_length]的解码器的注意力掩码。
|
||||
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。注:当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码,其中tgt_seq_length表示解码器的长度。注:当网络位于最外层时,此参数不能通过None传递。默认值为None。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - 此层的输出logit。shape为[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]。
|
||||
- **layer_present** (Tensor) - 元组,其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor,或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor。
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
.. py:class:: mindspore.parallel.nn.TransformerEncoder(batch_size, num_layers, hidden_size, ffn_hidden_size, seq_length, num_heads, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, hidden_act="gelu", post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, lambda_func=None, offset=0, use_past=False, moe_config=default_moe_config, parallel_config=default_transformer_config)
|
||||
|
||||
Transformer中的编码器模块,具有多层堆叠的 `TransformerEncoderLayer` ,包括多头自注意力层和前馈层。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入tensor的批次大小。
|
||||
- **num_layers** (int) - 表示 `TransformerEncoderLayer` 的层。
|
||||
- **hidden_size** (int) - 表示输入的隐藏大小。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **seq_length** (int) - 表示输入序列长度。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。例如,如果我们有两个单词,想生成十个或以上单词。我们只需要计算一次这两个单词的状态,然后逐个生成下一个单词。当use_past为True时,有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True,并传递完整的输入。然后,通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时,传递step的输入tensor,并对其进行环回。默认值:False
|
||||
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合,用户可以传递一个接受 `network` 、 `layer_id` 、 `offset` 、 `parallel_config` 和 `layers` 的函数。 `network(Cell)` 表示transformer块, `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块,则layer_index需要一个偏置。pipeline的默认设置为: `(layer_id + offset) // (layers / pipeline_stage)` 。
|
||||
- **offset** (int) - 表示 `decoder` 的初始层索引。其用于设置梯度聚合的融合值和流水线并行的stage值。
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **hidden_states** (Tensor) - Tensor。如果use_past为False或者is_first_iteration为True,shape为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则,shape应为[batch_size, 1, hidden_size]。
|
||||
- **attention_mask** (Tensor) - Tensor,表示shape为[[batch_size, seq_length, seq_length]的注意力掩码。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则,shape将为(batch_size, 1, hidden_size)。
|
||||
- **layer_present** (Tuple) - 大小为num_layers的元组,其中每个元组都包含shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor。
|
||||
.. py:class:: mindspore.nn.transformer.TransformerEncoder(batch_size, num_layers, hidden_size, ffn_hidden_size, seq_length, num_heads, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, hidden_act="gelu", post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, lambda_func=None, offset=0, use_past=False, moe_config=default_moe_config, parallel_config=default_transformer_config)
|
||||
|
||||
Transformer中的编码器模块,具有多层堆叠的 `TransformerEncoderLayer` ,包括多头自注意力层和前馈层。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入tensor的批次大小。
|
||||
- **num_layers** (int) - 表示 `TransformerEncoderLayer` 的层。
|
||||
- **hidden_size** (int) - 表示输入的隐藏大小。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **seq_length** (int) - 表示输入序列长度。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。例如,如果我们有两个单词,想生成十个或以上单词。我们只需要计算一次这两个单词的状态,然后逐个生成下一个单词。当use_past为True时,有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True,并传递完整的输入。然后,通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时,传递step的输入tensor,并对其进行环回。默认值:False
|
||||
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合,用户可以传递一个接受 `network` 、 `layer_id` 、 `offset` 、 `parallel_config` 和 `layers` 的函数。 `network(Cell)` 表示transformer块, `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块,则layer_index需要一个偏置。pipeline的默认设置为: `(layer_id + offset) // (layers / pipeline_stage)` 。
|
||||
- **offset** (int) - 表示 `decoder` 的初始层索引。其用于设置梯度聚合的融合值和流水线并行的stage值。
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **hidden_states** (Tensor) - Tensor。如果use_past为False或者is_first_iteration为True,shape为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则,shape应为[batch_size, 1, hidden_size]。
|
||||
- **attention_mask** (Tensor) - Tensor,表示shape为[[batch_size, seq_length, seq_length]的注意力掩码。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则,shape将为(batch_size, 1, hidden_size)。
|
||||
- **layer_present** (Tuple) - 大小为num_layers的元组,其中每个元组都包含shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor。
|
||||
|
|
|
@ -1,36 +1,36 @@
|
|||
.. py:class:: mindspore.parallel.nn.TransformerEncoderLayer(batch_size, hidden_size, ffn_hidden_size, num_heads, seq_length, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, hidden_act="gelu", use_past=False, moe_config=default_moe_config, parallel_config=default_dpmp_config)
|
||||
|
||||
Transformer的编码器层。Transformer的编码器层上的单层的实现,包括多头注意力层和前馈层。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入Tensor的批次大小。
|
||||
- **hidden_size** (int) - 表示输入的隐藏大小。
|
||||
- **seq_length** (int) - 表示输入序列长度。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。例如,如果我们有两个单词,想生成十个或以上单词。我们只需要计算一次这两个单词的状态,然后逐个生成下一个单词。当use_past为True时,有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True,并传递完整的输入。然后,通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时,传递step的输入tensor,并对其进行环回。默认值:False
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - Float Tensor。如果use_past为False或者is_first_iteration为True,shape应为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则,shape应为[batch_size, 1, hidden_size]。
|
||||
- **input_mask** (Tensor) - Float tensor。use_past为False或者is_first_iteration为True时,表示shape为[batch_size, seq_length, seq_length]的注意力掩码。否则,shape应为[batch_size, 1, hidden_size]。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则,shape将为(batch_size, 1, hidden_size)。
|
||||
|
||||
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。
|
||||
.. py:class:: mindspore.nn.transformer.TransformerEncoderLayer(batch_size, hidden_size, ffn_hidden_size, num_heads, seq_length, attention_dropout_rate=0.1, hidden_dropout_rate=0.1, post_layernorm_residual=False, layernorm_compute_type=mstype.float32, softmax_compute_type=mstype.float32, param_init_type=mstype.float32, hidden_act="gelu", use_past=False, moe_config=default_moe_config, parallel_config=default_dpmp_config)
|
||||
|
||||
Transformer的编码器层。Transformer的编码器层上的单层的实现,包括多头注意力层和前馈层。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **batch_size** (int) - 表示输入Tensor的批次大小。
|
||||
- **hidden_size** (int) - 表示输入的隐藏大小。
|
||||
- **seq_length** (int) - 表示输入序列长度。
|
||||
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
|
||||
- **num_heads** (int) - 表示注意力头的数量。
|
||||
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值:0.1
|
||||
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值:0.1
|
||||
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差,即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值:False
|
||||
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:gelu。
|
||||
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为dtype.float32或dtype.float16。默认值为mstype.float32。
|
||||
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为dtype.float32或dtype.float16。默认值为dtype.float32。
|
||||
- **use_past** (bool) - 使用过去状态进行计算,用于增量预测。例如,如果我们有两个单词,想生成十个或以上单词。我们只需要计算一次这两个单词的状态,然后逐个生成下一个单词。当use_past为True时,有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True,并传递完整的输入。然后,通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时,传递step的输入tensor,并对其进行环回。默认值:False
|
||||
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。
|
||||
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - Float Tensor。如果use_past为False或者is_first_iteration为True,shape应为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则,shape应为[batch_size, 1, hidden_size]。
|
||||
- **input_mask** (Tensor) - Float tensor。use_past为False或者is_first_iteration为True时,表示shape为[batch_size, seq_length, seq_length]的注意力掩码。否则,shape应为[batch_size, 1, hidden_size]。
|
||||
- **init_reset** (Tensor) - shape为[1]的bool tensor,用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
|
||||
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor,表示过去所计算的索引。当use_past为True时,它用于增量预测。默认值为None。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `layer_present`)的元组。
|
||||
|
||||
- **output** (Tensor) - use_past为False或is_first_iteration为True时,表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则,shape将为(batch_size, 1, hidden_size)。
|
||||
|
||||
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
.. py:class:: mindspore.parallel.nn.TransformerOpParallelConfig(data_parallel=1, model_parallel=1, pipeline_stage=1, micro_batch_num=1, recompute=False, optimizer_shard=False, gradient_aggregation_group=4, vocab_emb_dp=True)
|
||||
|
||||
用于设置数据并行、模型并行等等并行配置的TransformerOpParallelConfig。
|
||||
|
||||
注:
|
||||
除recompute参数外,当用户未将auto_parallel_context设为 `SEMI_AUTO_PARALLEL` 或 `AUTO_PARALLEL` 时,其他参数将无效。
|
||||
在训练时,micro_batch_num的值必须大于或等于equal to pipeline_stage的值。data_parallel\*model_parallel \*pipeline_stage的值必须等于或小于总设备的数量。设置pipeline_stage和optimizer_shard时,其配置将覆盖auto_parallel_context的配置。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_parallel** (int) - 表示数据并行数。默认值:1。
|
||||
- **model_parallel** (int) - 表示模型并行数。默认值:1。
|
||||
- **pipeline_stage** (int) - 表示将Transformer切分成的stage数目。其值应为正数。默认值:1。
|
||||
- **micro_batch_num** (int) - 表示用于pipeline训练的batch的微型大小。默认值:1。
|
||||
- **optimizer_shard** (bool) - 表示是否使能优化器切分。默认值:False。
|
||||
- **gradient_aggregation_group** (int) - 表示优化器切分的融合组大小。默认值:4。
|
||||
- **recompute** (bool) - 表示是否启用transformer每层的的重计算。默认值:False。
|
||||
- **vocab_emb_dp** (bool) - 表示Embedding表是否为数据并行,否则将在查找表中的第0维度根据模型并行度进行切分。默认值:True。
|
||||
|
||||
.. py:method:: dp_mp_config()
|
||||
|
||||
获取包含数据并行、模型并行度的DPMPlConfig。
|
||||
|
||||
.. py:method:: embedding_dp_mp_config()
|
||||
|
||||
获取包含数据并行、模型并行和embedding并行度的EmbeddingParallelConfig。
|
||||
.. py:class:: mindspore.nn.transformer.TransformerOpParallelConfig(data_parallel=1, model_parallel=1, pipeline_stage=1, micro_batch_num=1, recompute=False, optimizer_shard=False, gradient_aggregation_group=4, vocab_emb_dp=True)
|
||||
|
||||
用于设置数据并行、模型并行等等并行配置的TransformerOpParallelConfig。
|
||||
|
||||
.. note::
|
||||
除recompute参数外,当用户未将auto_parallel_context设为 `SEMI_AUTO_PARALLEL` 或 `AUTO_PARALLEL` 时,其他参数将无效。
|
||||
在训练时,micro_batch_num的值必须大于或等于equal to pipeline_stage的值。data_parallel\*model_parallel \*pipeline_stage的值必须等于或小于总设备的数量。设置pipeline_stage和optimizer_shard时,其配置将覆盖auto_parallel_context的配置。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_parallel** (int) - 表示数据并行数。默认值:1。
|
||||
- **model_parallel** (int) - 表示模型并行数。默认值:1。
|
||||
- **pipeline_stage** (int) - 表示将Transformer切分成的stage数目。其值应为正数。默认值:1。
|
||||
- **micro_batch_num** (int) - 表示用于pipeline训练的batch的微型大小。默认值:1。
|
||||
- **optimizer_shard** (bool) - 表示是否使能优化器切分。默认值:False。
|
||||
- **gradient_aggregation_group** (int) - 表示优化器切分的融合组大小。默认值:4。
|
||||
- **recompute** (bool) - 表示是否启用transformer每层的的重计算。默认值:False。
|
||||
- **vocab_emb_dp** (bool) - 表示Embedding表是否为数据并行,否则将在查找表中的第0维度根据模型并行度进行切分。默认值:True。
|
||||
|
||||
.. py:method:: dp_mp_config()
|
||||
|
||||
获取包含数据并行、模型并行度的DPMPlConfig。
|
||||
|
||||
.. py:method:: embedding_dp_mp_config()
|
||||
|
||||
获取包含数据并行、模型并行和embedding并行度的EmbeddingParallelConfig。
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
.. py:class:: mindspore.parallel.nn.VocabEmbedding(vocab_size, embedding_size, parallel_config=default_embedding_parallel_config, param_init="normal")
|
||||
|
||||
根据输入的索引查找参数表中的行作为返回值。当设置并行模式为 `AUTO_PARALLEL_MODE` 时,如果parallel_config.vocab_emb_dp为True时,那么embedding lookup表采用数据并行的方式,数据并行度为 `parallel_config.data_parallel` ,否则按 `parallel_config.model_parallel` 对embedding表中的第0维度进行切分。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **vocab_size** (int) - 表示查找表的大小。
|
||||
- **embedding_size** (int)- 表示查找表中每个嵌入向量的大小。
|
||||
- **param_init** (Union[Tensor, str, Initializer, numbers.Number])- 表示embedding_table的Initializer。当指定字符串时,请参见 `initializer` 类了解字符串的值。默认值:'normal'
|
||||
- **parallel_config** (EmbeddingOpParallelConfig) - 表示网络的并行配置。默认值为 `default_embedding_parallel_config` ,表示带有默认参数的 `EmbeddingOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **input_ids** (Tensor) - shape为(batch_size, seq_length)的输入,其数据类型为int32。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `embedding_table`)的元组。
|
||||
|
||||
- **output** (Tensor) - shape为(batch_size, seq_length, embedding_size)嵌入向量查找结果。
|
||||
- **weight** (Tensor) - shape为(vocab_size, embedding_size)的嵌入表。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - parallel_config.vocab_emb_dp为True时,词典的大小不是parallel_config.model_parallel的倍数。
|
||||
- **ValueError** - `vocab_size` 不是正值。
|
||||
- **ValueError** - `embedding_size` 不是正值。
|
||||
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
|
||||
.. py:class:: mindspore.nn.transformer.VocabEmbedding(vocab_size, embedding_size, parallel_config=default_embedding_parallel_config, param_init="normal")
|
||||
|
||||
根据输入的索引查找参数表中的行作为返回值。当设置并行模式为 `AUTO_PARALLEL_MODE` 时,如果parallel_config.vocab_emb_dp为True时,那么embedding lookup表采用数据并行的方式,数据并行度为 `parallel_config.data_parallel` ,否则按 `parallel_config.model_parallel` 对embedding表中的第0维度进行切分。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **vocab_size** (int) - 表示查找表的大小。
|
||||
- **embedding_size** (int)- 表示查找表中每个嵌入向量的大小。
|
||||
- **param_init** (Union[Tensor, str, Initializer, numbers.Number])- 表示embedding_table的Initializer。当指定字符串时,请参见 `initializer` 类了解字符串的值。默认值:'normal'。
|
||||
- **parallel_config** (EmbeddingOpParallelConfig) - 表示网络的并行配置。默认值为 `default_embedding_parallel_config` ,表示带有默认参数的 `EmbeddingOpParallelConfig` 实例。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **input_ids** (Tensor) - shape为(batch_size, seq_length)的输入,其数据类型为int32。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tuple,表示一个包含(`output`, `embedding_table`)的元组。
|
||||
|
||||
- **output** (Tensor) - shape为(batch_size, seq_length, embedding_size)嵌入向量查找结果。
|
||||
- **weight** (Tensor) - shape为(vocab_size, embedding_size)的嵌入表。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - parallel_config.vocab_emb_dp为True时,词典的大小不是parallel_config.model_parallel的倍数。
|
||||
- **ValueError** - `vocab_size` 不是正值。
|
||||
- **ValueError** - `embedding_size` 不是正值。
|
||||
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
|
||||
|
|
Loading…
Reference in New Issue