我正在使用tensorflow - https://www.tensorflow.org/beta/tutorials/text/transformer中的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的细节。
发布于 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.map或tf.data.Dataset.interleave上使用流功能时,tf.data.Options会运行)
如何查看单个元素?
我确信有很多种方法,但一种直接的方法是在基类中使用迭代器:
由于examples['train']是_OptionsDataset的一种类型,因此这里通过调用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文件读取到dataset中,创建一个单独的tf.compat.v2.data.Dataset对象本身应该很有用:
tf.data.experimental.make_csv_dataset
https://stackoverflow.com/questions/56820723
复制相似问题