包含来自一个或多个 CSV 文件的行的数据集。
继承自:Dataset
用法
tf.data.experimental.CsvDataset(
filenames, record_defaults, compression_type=None, buffer_size=None,
header=False, field_delim=',', use_quote_delim=True,
na_value='', select_cols=None, exclude_cols=None
)
参数
-
filenames
包含一个或多个文件名的tf.string
张量。 -
record_defaults
CSV 字段的默认值列表。列表中的每个项目或者是有效的 CSVDType
(float32、float64、int32、int64、字符串),或者是具有上述类型之一的Tensor
对象。每列一个 CSV 数据,如果是可选的,则为该列的标量Tensor
默认值,或者如果需要,则为DType
或空的Tensor
。如果同时指定了 this 和select_columns
,则它们必须具有相同的长度,并且假定column_defaults
是按列索引递增的顺序排序的。如果同时指定了 this 和 'exclude_cols',则 record_defaults 和 exclude_cols 的长度总和应等于 CSV 文件中的总列数。 -
compression_type
(可选。)tf.string
标量评估为""
(无压缩)、"ZLIB"
或"GZIP"
之一。默认为无压缩。 -
buffer_size
(可选。)tf.int64
标量,表示读取文件时要缓冲的字节数。默认为 4MB。 -
header
(可选。)tf.bool
标量,指示 CSV 文件是否具有在解析时应跳过的标题行。默认为False
。 -
field_delim
(可选。)tf.string
标量包含分隔记录中的字段的分隔符。默认为","
。 -
use_quote_delim
(可选。)tf.bool
标量。如果False
,将双引号视为字符串字段中的常规字符(忽略 RFC 4180,第 2 节,第 5 条)。默认为True
。 -
na_value
(可选。)tf.string
标量,指示将被视为 NA/NaN 的值。 -
select_cols
(可选。)要从输入数据中选择的列索引的排序列表。如果指定,将仅解析此列子集。默认解析所有列。最多可以指定select_cols
和exclude_cols
之一。 -
exclude_cols
(可选。)要从输入数据中排除的列索引的排序列表。如果指定,则仅解析这组列的补集。默认解析所有列。最多可以指定select_cols
和exclude_cols
之一。
抛出
-
InvalidArgumentError
如果 exclude_cols 不是 None 并且 len(exclude_cols) + len(record_defaults) 与文件中的总列数不匹配
属性
-
element_spec
此数据集元素的类型规范。dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3]) dataset.element_spec TensorSpec(shape=(), dtype=tf.int32, name=None)
如需更多信息,请阅读本指南。
tf.data.experimental.CsvDataset
类提供了一个最小的 CSV 数据集接口。还有一个更丰富的tf.data.experimental.make_csv_dataset
函数,它提供了额外的便利函数,如列标题解析、列type-inference、自动洗牌和文件交错。
该数据集的元素对应于文件中的记录。 CSV 文件应采用 RFC 4180 格式 (https://tools.ietf.org/html/rfc4180) 请注意,我们允许 int 或 float 字段的前导和尾随空格。
例如,假设我们有一个文件 'my_file0.csv',其中包含四个不同数据类型的 CSV 列:
with open('/tmp/my_file0.csv', 'w') as f:
f.write('abcdefg,4.28E10,5.55E6,12\n')
f.write('hijklmn,-5.3E14,,2\n')
我们可以从它构造一个 CsvDataset,如下所示:
dataset = tf.data.experimental.CsvDataset(
"/tmp/my_file0.csv",
[tf.float32, # Required field, use dtype or empty tensor
tf.constant([0.0], dtype=tf.float32), # Optional field, default to 0.0
tf.int32, # Required field, use dtype or empty tensor
],
select_cols=[1,2,3] # Only parse last three columns
)
其迭代的预期输出为:
for element in dataset.as_numpy_iterator():
print(element)
(4.28e10, 5.55e6, 12)
(-5.3e14, 0.0, 2)
参看https://www.tensorflow.org/tutorials/load_data/csv#tfdataexperimentalcsvdataset更多in-depth示例用法。
相关用法
- Python tf.data.experimental.CsvDataset.window用法及代码示例
- Python tf.data.experimental.CsvDataset.apply用法及代码示例
- Python tf.data.experimental.CsvDataset.flat_map用法及代码示例
- Python tf.data.experimental.CsvDataset.random用法及代码示例
- Python tf.data.experimental.CsvDataset.cardinality用法及代码示例
- Python tf.data.experimental.CsvDataset.interleave用法及代码示例
- Python tf.data.experimental.CsvDataset.group_by_window用法及代码示例
- Python tf.data.experimental.CsvDataset.as_numpy_iterator用法及代码示例
- Python tf.data.experimental.CsvDataset.from_generator用法及代码示例
- Python tf.data.experimental.CsvDataset.range用法及代码示例
- Python tf.data.experimental.CsvDataset.unique用法及代码示例
- Python tf.data.experimental.CsvDataset.shard用法及代码示例
- Python tf.data.experimental.CsvDataset.choose_from_datasets用法及代码示例
- Python tf.data.experimental.CsvDataset.batch用法及代码示例
- Python tf.data.experimental.CsvDataset.enumerate用法及代码示例
- Python tf.data.experimental.CsvDataset.from_tensors用法及代码示例
- Python tf.data.experimental.CsvDataset.bucket_by_sequence_length用法及代码示例
- Python tf.data.experimental.CsvDataset.padded_batch用法及代码示例
- Python tf.data.experimental.CsvDataset.prefetch用法及代码示例
- Python tf.data.experimental.CsvDataset.concatenate用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.data.experimental.CsvDataset。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。