所以,我一直在努力了一段时间的一个项目,我们有非常少的数据,我知道它会变得更好,如果我们能够把一个非常非常大的数据集。除此之外,我目前的问题是当我有一个句子输入时,我的输出现在看起来像这样:
联系方式 联系方式 联系方式 联系方式
一个词被聚焦并一遍又一遍地重复。我能做些什么来克服这个障碍?
我尝试过的事情:
可以肯定的是,我的困惑正在稳步减少。
这是我的数据集准备代码:
class ModelInputs(object):
"""Factory to construct various input hooks and functions depending on mode """
def __init__(
self, vocab_files, batch_size,
share_vocab=True, src_eos_id=1, tgt_eos_id=2
):
self.batch_size = batch_size
self.vocab_files = vocab_files
self.share_vocab = share_vocab
self.src_eos_id = src_eos_id
self.tgt_eos_id = tgt_eos_id
def get_inputs(self, file_path, num_infer=None, mode=tf.estimator.ModeKeys.TRAIN):
self.mode = mode
if self.mode == tf.estimator.ModeKeys.TRAIN:
return self._training_input_hook(file_path)
if self.mode == tf.estimator.ModeKeys.EVAL: …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我遇到了将数据序列化为tfrecord格式然后使用parse_single_sequence示例进行反序列化的问题.我试图检索数据以使用相当标准的RNN模型,但这是我第一次尝试使用tfrecords格式以及随之而来的相关管道.
这是一个重现我遇到的问题的玩具示例:
import tensorflow as tf
import tempfile
from IPython import embed
sequences = [[1, 2, 3], [4, 5, 1], [1, 2]]
label_sequences = [[0, 1, 0], [1, 0, 0], [1, 1]]
def make_example(sequence, labels):
ex = tf.train.SequenceExample()
sequence_length = len(sequence)
ex.context.feature["length"].int64_list.value.append(sequence_length)
fl_tokens = ex.feature_lists.feature_list["tokens"]
fl_labels = ex.feature_lists.feature_list["labels"]
for token, label in zip(sequence, labels):
fl_tokens.feature.add().int64_list.value.append(token)
fl_labels.feature.add().int64_list.value.append(label)
return ex
writer = tf.python_io.TFRecordWriter('./test.tfrecords')
for sequence, label_sequence in zip(sequences, label_sequences):
ex = make_example(sequence, label_sequence)
writer.write(ex.SerializeToString())
writer.close()
tf.reset_default_graph()
file_name_queue = tf.train.string_input_producer(['./test.tfrecords'], num_epochs=None)
reader = …Run Code Online (Sandbox Code Playgroud)