mindspore.dataset.IWSLT2017Dataset
- class mindspore.dataset.IWSLT2017Dataset(dataset_dir, usage=None, language_pair=None, num_samples=None, shuffle=Shuffle.GLOBAL, num_shards=None, shard_id=None, num_parallel_workers=None, cache=None)[源代码]
IWSLT2017(International Workshop on Spoken Language Translation)数据集。
生成的数据集有两列 [text, translation] 。 text 列和 translation 列的数据类型均为string。
- 参数:
dataset_dir (str) - 包含数据集文件的根目录路径。
usage (str, 可选) - 指定数据集的子集,可取值为
'train'
、'valid'
、'test'
或'all'
。默认值:None
,读取全部样本。language_pair (sequence, 可选) - 包含源语和目标语的语言列表,支持的语言对有
('en', 'nl')
、('en', 'de')
、('en', 'it')
、('en', 'ro')
、('nl', 'en')
、('nl', 'de')
、('nl', 'it')
、('nl', 'ro')
、('de', 'en')
、('de', 'nl')
、('de', 'it')
、('de', 'ro')
、('it', 'en')
、('it', 'nl')
、('it', 'de')
、('it', 'ro')
、('ro', 'en')
、('ro', 'nl')
、('ro', 'de')
、('ro', 'it')
。默认值:None
,默认为('de', 'en')
。num_samples (int, 可选) - 指定从数据集中读取的样本数。默认值:
None
,读取所有样本。shuffle (Union[bool,
Shuffle
], 可选) - 每个epoch中数据混洗的模式,支持传入bool类型与枚举类型进行指定。默认值:Shuffle.GLOBAL
。 如果 shuffle 为False
,则不混洗,如果 shuffle 为True
,等同于将 shuffle 设置为mindspore.dataset.Shuffle.GLOBAL
。 通过传入枚举变量设置数据混洗的模式:Shuffle.GLOBAL
:混洗文件和样本。Shuffle.FILES
:仅混洗文件。
num_shards (int, 可选) - 指定分布式训练时将数据集进行划分的分片数。默认值:
None
。指定此参数后, num_samples 表示每个分片的最大样本数。一般在 数据并行模式训练 的时候使用。shard_id (int, 可选) - 指定分布式训练时使用的分片ID号。默认值:
None
。只有当指定了 num_shards 时才能指定此参数。num_parallel_workers (int, 可选) - 指定读取数据的工作线程数。默认值:
None
,使用全局默认线程数(8),也可以通过mindspore.dataset.config.set_num_parallel_workers()
配置全局线程数。cache (
DatasetCache
, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读 单节点数据缓存 。默认值:None
,不使用缓存。
- 异常:
RuntimeError - dataset_dir 参数所指向的文件目录不存在或缺少数据集文件。
RuntimeError - 指定了 num_shards 参数,但是未指定 shard_id 参数。
RuntimeError - 指定了 shard_id 参数,但是未指定 num_shards 参数。
ValueError - num_parallel_workers 参数超过系统最大线程数。
样例:
>>> import mindspore.dataset as ds >>> iwslt2017_dataset_dir = "/path/to/iwslt2017_dataset_dir" >>> dataset = ds.IWSLT2017Dataset(dataset_dir=iwslt2017_dataset_dir, usage='all', language_pair=('de', 'en'))
- 教程样例:
关于IWSLT2017数据集:
IWSLT是一个专门讨论口译各个方面的重要年度科学会议。IWSLT评估活动中的MT任务被构成一个数据集,该数据集可通过 wit3 公开获取。 IWSLT2017数据集中有德语、英语、意大利语、荷兰语和罗马尼亚语,数据集包括其中任何两种语言的翻译。
可以将原始IWSLT2017数据集文件解压缩到此目录结构中,并由MindSpore的API读取。解压后,还需要将要读取的数据集解压到指定文件夹中。例如,如果要读取de-en的数据集,则需要解压缩de/en目录下的tgz文件,数据集位于解压缩文件夹中。
. └── iwslt2017_dataset_directory ├── subeval_files └── texts ├── ar │ └── en │ └── ar-en ├── cs │ └── en │ └── cs-en ├── de │ └── en │ └── de-en │ ├── IWSLT16.TED.dev2010.de-en.de.xml │ ├── train.tags.de-en.de │ ├── ... ├── en │ ├── ar │ │ └── en-ar │ ├── cs │ │ └── en-cs │ ├── de │ │ └── en-de │ └── fr │ └── en-fr └── fr └── en └── fr-en
引用:
@inproceedings{cettoloEtAl:EAMT2012, Address = {Trento, Italy}, Author = {Mauro Cettolo and Christian Girardi and Marcello Federico}, Booktitle = {Proceedings of the 16$^{th}$ Conference of the European Association for Machine Translation (EAMT)}, Date = {28-30}, Month = {May}, Pages = {261--268}, Title = {WIT$^3$: Web Inventory of Transcribed and Translated Talks}, Year = {2012}}
预处理操作
对数据集对象执行给定操作函数。 |
|
对传入的多个数据集对象进行拼接操作。 |
|
通过自定义判断条件对数据集对象中的数据进行过滤。 |
|
对数据集对象中每一条数据执行给定的数据处理,并将结果展平。 |
|
给定一组数据增强列表,按顺序将数据增强作用在数据集对象上。 |
|
从数据集对象中选择需要的列,并按给定的列名的顺序进行排序。 |
|
对数据集对象按指定的列名进行重命名。 |
|
重复此数据集 count 次。 |
|
重置下一个epoch的数据集对象。 |
|
将数据处理管道中正处理的数据保存为通用的数据集格式。 |
|
通过创建 buffer_size 大小的缓存来混洗该数据集。 |
|
跳过此数据集对象的前 count 条数据。 |
|
将数据集拆分为多个不重叠的子数据集。 |
|
截取数据集的前指定条数据。 |
|
将多个dataset对象按列进行合并压缩,多个dataset对象不能有相同的列名。 |
Batch(批操作)
将数据集中连续 batch_size 条数据组合为一个批数据,并可通过可选参数 per_batch_map 指定组合前要进行的预处理操作。 |
|
根据数据的长度进行分桶。 |
|
将数据集中连续 batch_size 条数据组合为一个批数据,并可通过可选参数 pad_info 预先将样本补齐。 |
迭代器
创建数据集迭代器,返回字典形式的样本,其中键为列名,值为数据。 |
|
创建数据集迭代器,返回列表形式的样本,其中的元素为各列数据。 |
数据集属性
获得数据集对象定义的批处理大小,即一个批处理数据中包含的数据条数。 |
|
获取类别名称到类别索引的映射字典。 |
|
返回数据集对象中包含的列名。 |
|
返回一个epoch中的batch数。 |
|
获取 RepeatDataset 中定义的repeat操作的次数。 |
|
获取/设置数据列索引,它表示使用下沉模式时数据列映射至网络中的对应关系。 |
|
获取数据集对象中所有样本的类别数目。 |
|
获取数据集对象中每列数据的shape。 |
|
获取数据集对象中每列数据的数据类型。 |
应用采样方法
为当前数据集添加子采样器。 |
|
替换当前数据集的最末子采样器,保持父采样器不变。 |
其他方法
释放阻塞条件并使用给定数据触发回调函数。 |
|
为同步操作在数据集对象上添加阻塞条件。 |
|
将数据处理管道序列化为JSON字符串,如果提供了文件名,则转储到文件中。 |