tensorflow,decode_csv,可变数据长度

时间:2017-05-08 04:10:31

标签: tensorflow sequence

我想使用tensorflow将序列写入序列。 我的输入数据形状是

[input_length, target_length, input , target]

他们有不同的长度。 我该如何使用tf.decode_csv? 我尝试使用最大输入长度制作record_defaults。 但所有形状必须在record_defaults中完全定义............ 我无法弄清楚这一点。

    csv_file = tf.train.string_input_producer([file_name], name='file_name')
    reader = tf.TextLineReader()
    _, line = reader.read(csv_file)
    record_defaults = [[0] for row in range(20)]
    data = tf.decode_csv(line,record_defaults=record_defaults,field_delim=',')
    len_error = tf.slice(data,[0],[1])
    len_target = tf.slice(data, [1], [1])
    error = tf.slice(data,[2],len_error)
    target = tf.slice(data, 2+len_error , len_target)

1 个答案:

答案 0 :(得分:1)

是的,tf.decode_csv确实要求所有行的大小相同。如果这对您不起作用,请考虑在Github上提交功能请求。

您还可以预处理CSV文件,将所有条目填充到相同数量的列中;您可以使用record_defaults参数tf.decode_csv将字段留空,但提供默认值。