![](/img/trans.png)
[英]What exactly is the object whose datatype is noted in the very end of a tensorflow.python.data.ops.dataset_ops.BatchDataset?
[英]What is tensorflow.python.data.ops.dataset_ops._OptionsDataset?
我正在使用来自 tensorflow 的 Transformer 代码 - https://www.tensorflow.org/beta/tutorials/text/transformer
在这段代码中,使用的数据集是这样加载的 -
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 的类型时:
type(train_examples)
我得到以下作为输出 -
tensorflow.python.data.ops.dataset_ops._OptionsDataset
现在我只想更改数据集的一些条目,即句子,但我无法理解,因为我不理解类型。
我可以使用以下方法对其进行迭代:
for data in train_examples:
print(data,type(data))
数据类型是 -
<class 'tuple'>
最后我想要的是用我自己的数据替换这些元组中的一些。 有人能告诉我怎么做,或者给我一些关于这种类型的细节tensorflow.python.data.ops.dataset_ops._OptionsDataset
。
tensorflow.python.data.ops.dataset_ops._OptionsDataset
只是扩展基类tf.compat.v2.data.Dataset
(DatasetV2) 的另一个类,它包含tf.data.Options
以及原始的tf.compat.v2.data.Dataset
集tf.compat.v2.data.Dataset
集(您的案例中的葡萄牙语-英语元组)。
( tf.data.Options
在您对数据集tf.data.Dataset.map
或tf.data.Dataset.interleave
使用流函数时tf.data.Dataset.interleave
)
如何查看单个元素?
我确信有很多方法,但一种直接的方法是在基类中使用迭代器:
由于examples['train']
是_OptionsDataset
一种类型,这里通过调用tf.compat.v2.data.Dataset
的方法进行tf.compat.v2.data.Dataset
iterator = examples['train'].__iter__()
next_element = iterator.get_next()
pt = next_element[0]
en = next_element[1]
print(pt.numpy())
print(en.numpy())
这是输出:
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 文件读入数据集来创建一个单独的tf.compat.v2.data.Dataset
对象本身应该很有用:
tf.data.experimental.make_csv_dataset
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.