gpt4 book ai didi

python - Tensorflow 运行时字典查找,处理 tf.parse_single_sequence_example 的输出

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:00 25 4
gpt4 key购买 nike

我正在使用tensorflow parse_single_sequence_example来解码来自TFRecordReader的record_string。它返回两个字典,一个用于 context_features,另一个用于equence_features。

filename_queue = tf.train.string_input_producer('temp.text', num_epochs=1, shuffle=True)
reader = tf.TFRecordReader()
key, record_string = reader.read(filename_queue)
context_features={
"output":tf.FixedLenFeature([],tf.int64)
}
sequence_features={
"input_sequence":tf.FixedLenSequenceFeature([5,],tf.float32)
}
context_parsed, sequence_parsed = tf.parse_single_sequence_example(serialized=record_string,context_features=context_features,sequence_features=sequence_features)

context_parsed和sequence_parsed都是字典。如何获取与键关联的张量对象。如果我执行以下获取操作

 with tf.Session() as sess:
a=sess.run([context_parsed],feed_dict=None)

它失败了,这是可以理解的。

Fetch argument {'output': <tf.Tensor 'ParseSingleSequenceExample/ParseSingleSequenceExample:1' shape=() dtype=int64>} of {'output': <tf.Tensor 'ParseSingleSequenceExample/ParseSingleSequenceExample:1' shape=() dtype=int64>} has invalid type <class 'dict'>, must be a string or Tensor. (Can not convert a dict into a Tensor or Operation.)

如何获取 context_parsed['output'] 张量?如何将该张量提供给图中的某个占位符?

out=context_parsed['output']   

我添加上面的行并尝试获取它,但它不起作用,终端只是卡在 ipython 中。

 with tf.Session() as sess:
a=sess.run(out,feed_dict=None)

我还添加了 tf.contrib.learn.run_n 的输出

In [13]: context = tf.contrib.learn.run_n(context_parsed, n=1, feed_dict=None)
In [14]: context[0]
Out[14]: {'length': 6, 'output': 4}
In [15]: context = tf.contrib.learn.run_n(out, n=1, feed_dict=None)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-15-e5d7d977676f> in <module>()

----> 1 个上下文 = tf.contrib.learn.run_n(out, n=1, feed_dict=None)

/home/ankgoyal/anaconda3/lib/python3.5/site-    packages/tensorflow/contrib/learn/python/learn/graph_actions.py in   run_n(output_dict, feed_dict, restore_checkpoint_path, n)
553 output_dict=output_dict,
554 feed_dicts=itertools.repeat(feed_dict, n),
--> 555 restore_checkpoint_path=restore_checkpoint_path)
556
557

/home/ankgoyal/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/graph_actions.py in run_feeds(output_dict, feed_dicts, restore_checkpoint_path)
579 ValueError: if `output_dict` or `feed_dicts` is None or empty.
580 """
--> 581 if not output_dict:
582 raise ValueError('output_dict is invalid: %s.' % output_dict)
583 if not feed_dicts:

/home/ankgoyal/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in __bool__(self)
513 `TypeError`.
514 """
--> 515 raise TypeError("Using a `tf.Tensor` as a Python `bool` is not allowed. "
516 "Use `if t is not None:` instead of `if t:` to test if a "
517 "tensor is defined, and use the logical TensorFlow ops "

TypeError: Using a `tf.Tensor` as a Python `bool` is not allowed. Use `if t is not None:` instead of `if t:` to test if a tensor is defined, and use the logical TensorFlow ops to test the value of a tensor.

如何获取 context_parsed['output'] 张量?如何将该张量提供给图表中的某个占位符?

最佳答案

我发现了我犯的错误。实际上,我没有为 TFReader() 启动新线程,因此终端挂起。

with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
print(sess.run(context_parsed['length']))
coord.join(threads)

输出打印为 6

关于python - Tensorflow 运行时字典查找,处理 tf.parse_single_sequence_example 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42498040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com