我正在使用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()
的参数。
答案 0 :(得分:1)
通过使用dataset.map
,您可以连接两个字典值:
dataset = dataset.map(lambda x: tf.stack(list(x.values())))
get_batch = dataset.make_one_shot_iterator()