包含來自一個或多個 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。