首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是tensorflow.python.data.ops.dataset_ops._OptionsDataset?

什么是tensorflow.python.data.ops.dataset_ops._OptionsDataset?
EN

Stack Overflow用户
提问于 2019-06-30 04:35:34
回答 1查看 9.8K关注 0票数 13

我正在使用tensorflow - https://www.tensorflow.org/beta/tutorials/text/transformer中的Transformer代码

在这段代码中,使用的数据集是这样加载的-

代码语言:javascript
复制
examples, metadata = tfds.load('ted_hrlr_translate/pt_to_en', with_info=True,
                               as_supervised=True)
train_examples, val_examples = examples['train'], examples['validation']

当我使用以下命令检查train_examples的类型时:

代码语言:javascript
复制
type(train_examples)

我得到以下输出:

代码语言:javascript
复制
tensorflow.python.data.ops.dataset_ops._OptionsDataset

现在我只想更改数据集的一些条目,即句子,但我无法更改,因为我不理解类型。

我可以使用以下命令对其进行迭代:

代码语言:javascript
复制
for data in train_examples:
    print(data,type(data))

数据类型是-

代码语言:javascript
复制
<class 'tuple'>

最后,我希望用我自己的数据替换其中的一些元组。谁能告诉我如何做到这一点,或给我一些关于这种类型的tensorflow.python.data.ops.dataset_ops._OptionsDataset的细节。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-17 21:34:13

tensorflow.python.data.ops.dataset_ops._OptionsDataset只是另一个扩展基类tf.compat.v2.data.Dataset (DatasetV2)的类,该类包含tf.data.Options和原始tf.compat.v2.data.Dataset数据集(在本例中是葡萄牙语-英语元组)。

(当您在数据集tf.data.Dataset.maptf.data.Dataset.interleave上使用流功能时,tf.data.Options会运行)

如何查看单个元素?

我确信有很多种方法,但一种直接的方法是在基类中使用迭代器:

由于examples['train']_OptionsDataset的一种类型,因此这里通过调用tf.compat.v2.data.Dataset中的方法进行迭代

代码语言:javascript
复制
iterator = examples['train'].__iter__()
next_element = iterator.get_next()
pt = next_element[0]
en = next_element[1]
print(pt.numpy())
print(en.numpy())

下面是输出:

代码语言:javascript
复制
b'o problema \xc3\xa9 que nunca vivi l\xc3\xa1 um \xc3\xbanico dia .'
b"except , i 've never lived one day of my life there ."

用您自己的数据替换

由于您没有提到要用什么替换原始数据集,因此我假设您有自己的特定翻译的CSV/TSV文件。然后,通过调用CSV API将CSV文件读取到dataset中,创建一个单独的tf.compat.v2.data.Dataset对象本身应该很有用:

tf.data.experimental.make_csv_dataset

https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/load_data/csv.ipynb

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56820723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档