wildml에서 "RNNs in TensorFlow, a Practical Guide and Undocumented Features" 게시물을 팔로우하고 있으며 tf.train.batch()
기능의 출력을 볼 수 없습니다.tf.train.batch()의 출력을 보는 방법
res = tf.contrib.learn.run_n({"y": batched_data}, n=1, feed_dict=None)
print("Batch shape: {}".format(res[0]["y"].shape))
print(res[0]["y"])
또는로는 다음과 같다 : 이후에 근거
는sequences = [[1, 2, 3], [4, 5, 1], [1, 2]]
label_sequences = [[0, 1, 0], [1, 0, 0], [1, 1]]
def make_example(sequence, labels):
# The object we return
ex = tf.train.SequenceExample()
# A non-sequential feature of our example
sequence_length = len(sequence)
ex.context.feature["length"].int64_list.value.append(sequence_length)
# Feature lists for the two sequential features of our example
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
fname = "/home/someUser/PycharmProjects/someTensors"
writer = tf.python_io.TFRecordWriter(fname)
for sequence, label_sequence in zip(sequences, label_sequences):
ex = make_example(sequence, label_sequence)
print ex
writer.write(ex.SerializeToString())
writer.close()
print("Wrote to {}".format(fname))
reader = tf.TFRecordReader()
filename_queue = tf.train.string_input_producer([fname])
_, serialized_example = reader.read(filename_queue)
context_parsed, sequence_parsed = tf.parse_single_sequence_example(
serialized=serialized_example, context_features=context_features,
sequence_features=sequence_features)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
tf.train.start_queue_runners(sess=sess)
batched_data = tf.train.batch(tensors=
[context_parsed['length'], sequence_parsed['tokens'],
sequence_parsed['labels']], batch_size=5, dynamic_pad= True)
batched_context_data = tf.train.batch(tensors= [context_parsed['length']],
batch_size=5, dynamic_pad= True)
batched_tokens_data = tf.train.batch(tensors=
[sequence_parsed['tokens']], batch_size=5, dynamic_pad= True)
batched_labels_data = tf.train.batch(tensors=
[sequence_parsed['labels']], batch_size=5, dynamic_pad= True)
, 다음과 같이 배치의 출력을 볼 수 있어야한다 : 다음과 같이 저장 로딩하고, 입력을 처리하기위한 코드는 보다 구체적인 경우에 :
res = tf.contrib.learn.run_n({"y": batched_context_data}, n=1, feed_dict=None)
print("Batch shape: {}".format(res[0]["y"].shape))
print(res[0]["y"])
불행하게도, TensorFlow 내가 과정을 죽이고 끝낼 수 있도록 두 가지 경우를 계산하는 데 영원히 소요됩니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?
대단히 감사합니다!
batched_data = tf.train.batch(...)
batched_context_data = tf.train.batch(...)
batched_tokens_data = tf.train.batch(...)
batched_labels_data = tf.train.batch(...)
당신이 이동하는 경우 :
tf.train.start_queue_runners(sess=sess)
... tf.train.batch()
에 호출을 포함하는이 라인 앞에 오는 :