我有一个文本文件,每一行包含一个句子。
当我创建一个TextLineDataset并使用迭代器在其上迭代时,它将逐行返回文件。
我想一次迭代我的文件两个令牌,下面是我的当前代码:
sentences = tf.data.TextLineDataset("data/train.src")
iterator = sentences.make_initializable_iterator()
next_element = iterator.get_next()
sess = tf.Session()
sess.run(tf.tables_initializer())
sess.run(iterator.initializer)
elem = sess.run(next_element)
print(elem)使用TextLineDataset可以做到这一点吗?
编辑:“记号”指的是“单词”。
发布于 2019-08-02 06:55:37
当然,这是可能的,但你有一点争论要做。你需要:
我们可以将tf.strings.split用于1.:
words = sentences.map(tf.strings.split)和flat_map为2.:
flat_words = words.flat_map(tf.data.Dataset.from_tensor_slices)和batch为3:
word_pairs = flat_words.batch(2)当然,我们可以把所有这些操作联系在一起,给我们这样的东西:
word_pairs = sentences \
.map(tf.strings.split) \
.flat_map(tf.data.Dataset.from_tensor_slices) \
.batch(2)https://stackoverflow.com/questions/57273962
复制相似问题