tf.data.TextLineDataset 和 tf.data.experimental.make_csv_dataset 的区别
Posted
技术标签:
【中文标题】tf.data.TextLineDataset 和 tf.data.experimental.make_csv_dataset 的区别【英文标题】:Difference between tf.data.TextLineDataset and tf.data.experimental.make_csv_dataset 【发布时间】:2021-08-22 03:00:18 【问题描述】:打开一个 Google colab notebook 并运行以下语句
#
import tensorflow as tf
import pathlib
import os
dataset = tf.data.TextLineDataset('/content/sample_data/california_housing_test.csv')
dataset ## output is <TextLineDatasetV2 shapes: (), types: tf.string>
然后在下面运行
import tensorflow as tf
import pathlib
import os
dataset = tf.data.experimental.make_csv_dataset('/content/sample_data/california_housing_test.csv',batch_size=5)
dataset ## output is <PrefetchDataset shapes: OrderedDict([(longitude, (5,)), (latitude, (5,)), (housing_median_age, (5,)), (total_rooms, (5,)), (total_bedrooms, (5,)), (population, (5,)), (households, (5,)), (median_income, (5,)), (median_house_value, (5,))]), types: OrderedDict([(longitude, tf.float32), (latitude, tf.float32), (housing_median_age, tf.float32), (total_rooms, tf.float32), (total_bedrooms, tf.float32), (population, tf.float32), (households, tf.float32), (median_income, tf.float32), (median_house_value, tf.float32)])>
显然 tf.data.TextLineDataset 和 tf.data.experimental.make_csv_dataset 处理文本文件的方式存在巨大差异。为什么tensorflow有这两个在实验中,其他在外面。
【问题讨论】:
【参考方案1】:tf.data.TextLineDataset 从文本文件加载文本并创建一个数据集,其中文件的每一行都成为数据集的一个元素。
作为tf.data.experimental.make_csv_dataset,它将 CSV 文件读入数据集,其中数据集的每个元素都是对应于一批 CSV 行的(特征、标签)元组。 file_pattern 应该是包含 CSV 记录的文件或文件路径模式的列表。
tf.experimental
表示所述类/方法处于早期开发阶段,不完整,或者不太常见,不符合标准。更多信息可以参考this answer
【讨论】:
以上是关于tf.data.TextLineDataset 和 tf.data.experimental.make_csv_dataset 的区别的主要内容,如果未能解决你的问题,请参考以下文章