Tensorflow에서 다차원 배열을 TFRecord에 저장하려고합니다. 예를 들어 : 다차원 배열을 사용하는 tf.SequenceExample
[[1, 2, 3], [1, 2], [3, 2, 1]]
내가 해결하기 위해 노력하고있는 작업이 순차적으로
, 나는 Tensorflow의tf.train.SequenceExample()
를 사용하려고하고 데이터를 쓸 때 나는 TFRecord 파일에 데이터를 쓰기에 성공입니다.
W tensorflow/core/framework/op_kernel.cc:936] Invalid argument: Name: , Key: input_characters, Index: 1. Number of int64 values != expected. values size: 6 but output shape: []
E tensorflow/core/client/tensor_c_api.cc:485] Name: , Key: input_characters, Index: 1. Number of int64 values != expected. values size: 6 but output shape: []
내 데이터는 다음과 같습니다로드하려고 사용하고 기능 : 내가 tf.parse_single_sequence_example
를 사용하여 TFRecord 파일에서 데이터를로드 할 때 그러나, 나는 비밀 오류의 많은 수의 인사를하고
def read_and_decode_single_example(filename):
filename_queue = tf.train.string_input_producer([filename],
num_epochs=None)
reader = tf.TFRecordReader()
_, serialized_example = reader.read(filename_queue)
context_features = {
"length": tf.FixedLenFeature([], dtype=tf.int64)
}
sequence_features = {
"input_characters": tf.FixedLenSequenceFeature([], dtype=tf.int64),
"output_characters": tf.FixedLenSequenceFeature([], dtype=tf.int64)
}
context_parsed, sequence_parsed = tf.parse_single_sequence_example(
serialized=serialized_example,
context_features=context_features,
sequence_features=sequence_features
)
context = tf.contrib.learn.run_n(context_parsed, n=1, feed_dict=None)
print context
내가 데이터를 저장하기 위해 사용하고있는 기능은 여기에 있습니다 :
# http://www.wildml.com/2016/08/rnns-in-tensorflow-a-practical-guide-and-undocumented-features/
def make_example(input_sequence, output_sequence):
"""
Makes a single example from Python lists that follows the
format of tf.train.SequenceExample.
"""
example_sequence = tf.train.SequenceExample()
# 3D length
sequence_length = sum([len(word) for word in input_sequence])
example_sequence.context.feature["length"].int64_list.value.append(sequence_length)
input_characters = example_sequence.feature_lists.feature_list["input_characters"]
output_characters = example_sequence.feature_lists.feature_list["output_characters"]
for input_character, output_character in izip_longest(input_sequence,
output_sequence):
# Extend seems to work, therefore it replaces append.
if input_sequence is not None:
input_characters.feature.add().int64_list.value.extend(input_character)
if output_characters is not None:
output_characters.feature.add().int64_list.value.extend(output_character)
return example_sequence
어떤 도움을 환영 할 것입니다.
안녕하세요, 컨텍스트를 더 제공 할 수 있습니까? 가장 좋은 것은 실제로 데이터를 파일에 저장하는 단계를 포함하여 실제로 실행 및 테스트 할 수있는 최소한의 예제를 제공하는 것입니다. – jlarsch
예제를 따라하기가 매우 어려우며 관련 컨텍스트를 포함하도록 예제를 편집하면 더 많은 도움을 얻을 수 있습니다. 예를 들어 코드에 주석을 넣은 링크를 보면 시퀀스 예제를 생성하는 스 니펫에는 실제로 데이터를 쓰는 코드가 포함되지 않는다는 것이 분명해진다. –