预处理非图像数据以输入Tensorflow DNN

时间:2016-11-16 00:57:27

标签: python tensorflow

我有大量的非图像数据分布在几个分隔文件中,我想用它们作为TensorFlow中DNN的输入。数据需要一些预处理,因此我尝试使用TensorFlow源中的CIFAR10示例作为示例,因为它具有预处理,它处理多个文件,并为模型排队数据。

我无法弄清楚应该如何表示数据,因为我将拥有多个FeatureColumns并且数据是按记录读取的。

我的输入数据如下所示,以“|”分隔。我要预处理的第一列,其结果是两个值;然后这些值将转换为tf.contrib.layers.sparse_column_with_hash_bucket的张量;第二个是我想用tf.contrib.layers.real_valued_column转换的实值列;第三个是我想要预测的标签。

uywohy|12.3|0 asdfsvjlk|2.2|1 nlnliu|1.0|1 nlwljw|9.6|0

我的计划是使用tf.TextLineReader读取数据,在分隔符上拆分数据,然后进行预处理。示例代码启动here

# Read in and pre-process a single record
DELIMITER = "|"
reader = tf.TextLineReader()
unparsed_record = reader.read()
col1, col2, label = unparsed_record.split(DELIMITER)
result.label = tf.cast(label, tf.int32)
col1_a, col1_b = _preprocess(col1)
# How to convert col1_a, col1_b, and col2 into a Tensor?

但是,我不确定如何将数据(col1_a,col1_b和col2)重新组合成可以输入模型的东西。 CIFAR10模型没有使用feed_dict,因此我没有看到如何组装数据。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用tf.learn,它需要一个输入函数来填充从要素列到张量或稀疏张量的映射。以下是一个示例:https://github.com/tensorflow/tensorflow/blob/r0.11/tensorflow/examples/learn/wide_n_deep_tutorial.py