我有大量的非图像数据分布在几个分隔文件中,我想用它们作为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
,因此我没有看到如何组装数据。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以使用tf.learn
,它需要一个输入函数来填充从要素列到张量或稀疏张量的映射。以下是一个示例:https://github.com/tensorflow/tensorflow/blob/r0.11/tensorflow/examples/learn/wide_n_deep_tutorial.py