如何在使用data.make_csv_dataset时沿着要素列展平张量流数据集?

时间:2018-06-11 16:47:39

标签: tensorflow tensorflow-datasets

我正在使用tf.contrib.data.make_csv_dataset来读取具有不同数量的功能列的CSV文件。

在阅读每个文件后,我想连接所有功能列。

dataset = tf.contrib.data.make_csv_dataset(file_names[0],48,select_columns=['Load_residential_multi_0','Load_residential_multi_1'],shuffle=False)
dataset = dataset.batch(2)
get_batch = dataset.make_one_shot_iterator()
get_batch = get_batch.get_next()
with tf.Session() as sess:
      power_data = sess.run(get_batch)
print(power_data.keys())

上面的代码将给出一个带有两个键的有序字典,如下所示:

  

odict_keys([' Load_residential_multi_0',' Load_residential_multi_1'])

我可以使用功能名称访问各个功能。例如power_data['Load_residential_multi_0']会给我,

array([[0.075 , 0.1225, 0.0775, 0.12  ],
       [0.0875, 0.1125, 0.095 , 0.1025]], dtype=float32)

但是,我希望连接两个功能列'Load_residential_multi_0','Load_residential_multi_1'

我这可以使用dataset.flatmap(map_func)来做到这一点,但我不确定我应该使用什么作为flatmap()的参数。

1 个答案:

答案 0 :(得分:1)

通过使用dataset.map,您可以连接两个字典值:

dataset = dataset.map(lambda x: tf.stack(list(x.values())))
get_batch = dataset.make_one_shot_iterator()