import tensorflow as tf
def read_data(file_queue):
reader = tf.TextLineReader(skip_header_lines=1)
key, value = reader.read(file_queue)
defaults = [[0], [0]]
value1, value2 = tf.decode_csv(value, defaults)
return tf.stack(value1, value2)
但是我想处理一些数据,比如“3胜2负”转换成[3,2]
用张量流来描述计算。
value1
、value2
(以及由tf.*
调用产生的任何其他操作)是符号变量,它们指向图中的节点。在这就是为什么如果打印“the data”得到
Tensor("DecodeCSV:0", shape=(), dtype=int32)
,这就是“the data”的python表示。在相反,实际数据只在图形被构建并放入
Session
之后才出现。在简言之,如果您想提取“真实数据”,您必须退出tensorflow图并获取值(从而强制执行图中描述的操作)。在
你必须做一些类似的事情:
然而,这并不是使用tensorflow的正确方法。在
相反,您必须尽可能多地描述计算,然后在需要时将所有内容执行到图中。 (创建会话、分配内存、将图形放入其中、执行操作、数据传输。。。是否不应频繁进行重型作业)
因此,我建议您看看tensorflow提供的控制流操作:https://www.tensorflow.org/api_guides/python/control_flow_ops#Comparison_Operators
您可以使用它们来控制值在图中的流动,避免在tensorflow和python之间进行无用的数据交换
相关问题 更多 >
编程相关推荐