Dataset
包含來自一個或多個 TFRecord 文件的記錄。
繼承自:Dataset
用法
tf.data.TFRecordDataset(
filenames, compression_type=None, buffer_size=None, num_parallel_reads=None,
name=None
)
參數
-
filenames
一個tf.string
張量或tf.data.Dataset
包含一個或多個文件名。 -
compression_type
(可選。)tf.string
標量評估為""
(無壓縮)、"ZLIB"
或"GZIP"
之一。 -
buffer_size
(可選。)tf.int64
標量,表示讀取緩衝區中的字節數。如果您的輸入管道存在 I/O 瓶頸,請考慮將此參數設置為 1-100 MB 的值。如果None
,則使用本地和遠程文件係統的合理默認值。 -
num_parallel_reads
(可選。)tf.int64
標量,表示要並行讀取的文件數。如果大於1,則以交錯的順序輸出並行讀取的文件記錄。如果您的輸入管道存在 I/O 瓶頸,請考慮將此參數設置為大於 1 的值以並行化 I/O。如果None
,文件將被順序讀取。 -
name
(可選。) tf.data 操作的名稱。
拋出
-
TypeError
如果任何參數不具有預期的類型。 -
ValueError
如果任何參數不具有預期的形狀。
屬性
-
element_spec
此數據集元素的類型規範。dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3]) dataset.element_spec TensorSpec(shape=(), dtype=tf.int32, name=None)
如需更多信息,請閱讀本指南。
這個數據集從文件中加載 TFRecords 作為字節,就像它們被寫入一樣。 TFRecordDataset
不會自行進行任何解析或解碼。可以通過在 TFRecordDataset
之後應用 Dataset.map
轉換來完成解析和解碼。
下麵給出了一個最小的例子:
import tempfile
example_path = os.path.join(tempfile.gettempdir(), "example.tfrecords")
np.random.seed(0)
# Write the records to a file.
with tf.io.TFRecordWriter(example_path) as file_writer:
for _ in range(4):
x, y = np.random.random(), np.random.random()
record_bytes = tf.train.Example(features=tf.train.Features(feature={
"x":tf.train.Feature(float_list=tf.train.FloatList(value=[x])),
"y":tf.train.Feature(float_list=tf.train.FloatList(value=[y])),
})).SerializeToString()
file_writer.write(record_bytes)
# Read the data back out.
def decode_fn(record_bytes):
return tf.io.parse_single_example(
# Data
record_bytes,
# Schema
{"x":tf.io.FixedLenFeature([], dtype=tf.float32),
"y":tf.io.FixedLenFeature([], dtype=tf.float32)}
)
for batch in tf.data.TFRecordDataset([example_path]).map(decode_fn):
print("x = {x:.4f}, y = {y:.4f}".format(**batch))
x = 0.5488, y = 0.7152
x = 0.6028, y = 0.5449
x = 0.4237, y = 0.6459
x = 0.4376, y = 0.8918
相關用法
- Python tf.data.TFRecordDataset.filter用法及代碼示例
- Python tf.data.TFRecordDataset.random用法及代碼示例
- Python tf.data.TFRecordDataset.zip用法及代碼示例
- Python tf.data.TFRecordDataset.choose_from_datasets用法及代碼示例
- Python tf.data.TFRecordDataset.apply用法及代碼示例
- Python tf.data.TFRecordDataset.rejection_resample用法及代碼示例
- Python tf.data.TFRecordDataset.flat_map用法及代碼示例
- Python tf.data.TFRecordDataset.shard用法及代碼示例
- Python tf.data.TFRecordDataset.unique用法及代碼示例
- Python tf.data.TFRecordDataset.scan用法及代碼示例
- Python tf.data.TFRecordDataset.cardinality用法及代碼示例
- Python tf.data.TFRecordDataset.group_by_window用法及代碼示例
- Python tf.data.TFRecordDataset.cache用法及代碼示例
- Python tf.data.TFRecordDataset.range用法及代碼示例
- Python tf.data.TFRecordDataset.reduce用法及代碼示例
- Python tf.data.TFRecordDataset.take_while用法及代碼示例
- Python tf.data.TFRecordDataset.snapshot用法及代碼示例
- Python tf.data.TFRecordDataset.with_options用法及代碼示例
- Python tf.data.TFRecordDataset.unbatch用法及代碼示例
- Python tf.data.TFRecordDataset.repeat用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.data.TFRecordDataset。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。