簡體   English   中英

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

[英]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.Datasettf.compat.v2.data.Dataset集(您的案例中的葡萄牙語-英語元組)。

tf.data.Options在您對數據集tf.data.Dataset.maptf.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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM