tensorflow,使用可变数据长度解码
我想使用tensorflow将序列写入序列。 我的输入数据形状是tensorflow,使用可变数据长度解码,tensorflow,sequence,Tensorflow,Sequence,我想使用tensorflow将序列写入序列。 我的输入数据形状是 [input_length, target_length, input , target] 它们有不同的长度。 如何使用tf.decode\u csv? 我尝试使用最大输入长度设置记录默认值。 但所有形状都必须在记录中完全定义。。。。。。。。。。。。 我搞不懂这件事 csv_file = tf.train.string_input_producer([file_name], name='file_name') r
[input_length, target_length, input , target]
它们有不同的长度。
如何使用tf.decode\u csv
?
我尝试使用最大输入长度设置记录默认值。
但所有形状都必须在记录中完全定义。。。。。。。。。。。。
我搞不懂这件事
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)
是的,
tf.decode\u csv
确实要求所有行的大小相同。如果这对你不起作用,考虑在Github上提交一个特性请求。
您还可以预处理CSV文件,将所有条目填充到相同数量的列中;您可以使用
record\u defaults
参数到tf.decode\u csv
以使字段为空,但提供默认值。我也尝试过此操作,无法使用此方法使其工作。看起来确实,您的行的长度都必须等于最大值,才能使其工作。如果您为Max定义了默认值,但有一行的观测值较少,那么它可能会抛出一个错误,显示“预期的X观测值,但得到了Y”。也许在CSV文件中使用额外的“,”来模拟空白值得一试?我还没试过。我经常发现在TF之外阅读文本文件更容易,比如numpy/pandas,然后将值输入TF,但这样会丢失好的TF无序和多文件查询。。。。你真好。我必须尝试另一种文件类型。多谢各位