टेन्सफोर्लो में, मैं एक बहुआयामी सरणी को एक 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
आपका उदाहरण अनुसरण करना बहुत कठिन है, और यदि आप प्रासंगिक संदर्भ को शामिल करने के लिए अपना उदाहरण संपादित करते हैं तो आपको और सहायता मिलेगी। उदाहरण के लिए - कोड में टिप्पणी में डाले गए लिंक को देखते हुए, यह स्पष्ट हो जाता है कि स्निपेट जहां आप अनुक्रम उदाहरण उत्पन्न करते हैं, उस कोड में शामिल नहीं है जो वास्तव में डेटा लिखता है। –