如何处理来自tf.decode_csv()喜欢数组。

2024-07-08 11:09:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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]


Tags: importreaddataqueuevaluetftensorflowdef
1条回答
网友
1楼 · 发布于 2024-07-08 11:09:25

用张量流来描述计算。value1value2(以及由tf.*调用产生的任何其他操作)是符号变量,它们指向图中的节点。在

这就是为什么如果打印“the data”得到Tensor("DecodeCSV:0", shape=(), dtype=int32),这就是“the data”的python表示。在

相反,实际数据只在图形被构建并放入Session之后才出现。在

简言之,如果您想提取“真实数据”,您必须退出tensorflow图并获取值(从而强制执行图中描述的操作)。在

你必须做一些类似的事情:

sess = tf.Session()
v1,v2 = sess.run([value1, value2])
return v2,v2

然而,这并不是使用tensorflow的正确方法。在

相反,您必须尽可能多地描述计算,然后在需要时将所有内容执行到图中。 (创建会话、分配内存、将图形放入其中、执行操作、数据传输。。。是否不应频繁进行重型作业)

因此,我建议您看看tensorflow提供的控制流操作:https://www.tensorflow.org/api_guides/python/control_flow_ops#Comparison_Operators

您可以使用它们来控制值在图中的流动,避免在tensorflow和python之间进行无用的数据交换

相关问题 更多 >

    热门问题