从Example
protos 返回特征字典的Dataset
。
用法
tf.data.experimental.make_batched_features_dataset(
file_pattern, batch_size, features, reader=None, label_key=None,
reader_args=None, num_epochs=None, shuffle=True, shuffle_buffer_size=10000,
shuffle_seed=None, prefetch_buffer_size=None, reader_num_threads=None,
parser_num_threads=None, sloppy_ordering=False, drop_final_batch=False
)
参数
-
file_pattern
包含Example
记录的文件或文件路径模式的列表。有关模式规则,请参见tf.io.gfile.glob
。 -
batch_size
一个 int 表示要在单个批次中组合的记录数。 -
features
dict
将函数键映射到FixedLenFeature
或VarLenFeature
值。见tf.io.parse_example
。 -
reader
可以使用filenames
张量和(可选)reader_args
调用并返回Example
张量的Dataset
的函数或类。默认为tf.data.TFRecordDataset
。 -
label_key
(可选)与键标签对应的字符串存储在tf.Examples
中。如果提供,它必须是features
键之一,否则会导致ValueError
。 -
reader_args
要传递给阅读器类的附加参数。 -
num_epochs
整数,指定读取数据集的次数。如果没有,则永远循环遍历数据集。默认为None
。 -
shuffle
一个布尔值,指示输入是否应该被打乱。默认为True
。 -
shuffle_buffer_size
ShuffleDataset 的缓冲区大小。大容量确保更好的洗牌,但会增加内存使用和启动时间。 -
shuffle_seed
用于洗牌的随机化种子。 -
prefetch_buffer_size
为了提高性能而预取的特征批次数。推荐值是每个训练步骤消耗的批次数。默认为auto-tune。 -
reader_num_threads
用于读取Example
记录的线程数。如果>1,结果将被交错。默认为1
。 -
parser_num_threads
用于将Example
张量解析为Feature
张量字典的线程数。默认为2
。 -
sloppy_ordering
如果True
,读取性能将以非确定性排序为代价来提高。如果False
,则生成的元素的顺序在洗牌之前是确定的(如果shuffle=True
,元素仍然是随机的。请注意,如果设置了种子,那么洗牌后的元素顺序是确定的)。默认为False
。 -
drop_final_batch
如果True
,并且批次大小没有平均分配输入数据集大小,则最终的较小批次将被丢弃。默认为False
。
返回
-
dict
元素的数据集,(或dict
元素和标签的元组)。每个dict
将函数键映射到Tensor
或SparseTensor
对象。
抛出
-
TypeError
如果reader
类型错误。 -
ValueError
如果label_key
不是features
键之一。
如果提供了label_key 参数,则返回由特征字典和标签组成的元组的Dataset
。
例子:
serialized_examples = [
features {
feature { key:"age" value { int64_list { value:[ 0 ] } } }
feature { key:"gender" value { bytes_list { value:[ "f" ] } } }
feature { key:"kws" value { bytes_list { value:[ "code", "art" ] } } }
},
features {
feature { key:"age" value { int64_list { value:[] } } }
feature { key:"gender" value { bytes_list { value:[ "f" ] } } }
feature { key:"kws" value { bytes_list { value:[ "sports" ] } } }
}
]
我们可以使用参数:
features:{
"age":FixedLenFeature([], dtype=tf.int64, default_value=-1),
"gender":FixedLenFeature([], dtype=tf.string),
"kws":VarLenFeature(dtype=tf.string),
}
预期的输出是:
{
"age":[[0], [-1]],
"gender":[["f"], ["f"]],
"kws":SparseTensor(
indices=[[0, 0], [0, 1], [1, 0]],
values=["code", "art", "sports"]
dense_shape=[2, 2]),
}
相关用法
- Python tf.data.experimental.make_saveable_from_iterator用法及代码示例
- Python tf.data.experimental.make_csv_dataset用法及代码示例
- Python tf.data.experimental.RandomDataset.group_by_window用法及代码示例
- Python tf.data.experimental.SqlDataset.enumerate用法及代码示例
- Python tf.data.experimental.SqlDataset.zip用法及代码示例
- Python tf.data.experimental.Counter用法及代码示例
- Python tf.data.experimental.SqlDataset.shard用法及代码示例
- Python tf.data.experimental.CsvDataset.window用法及代码示例
- Python tf.data.experimental.RandomDataset.cache用法及代码示例
- Python tf.data.experimental.SqlDataset.snapshot用法及代码示例
- Python tf.data.experimental.CsvDataset.apply用法及代码示例
- Python tf.data.experimental.DatasetInitializer用法及代码示例
- Python tf.data.experimental.ignore_errors用法及代码示例
- Python tf.data.experimental.unbatch用法及代码示例
- Python tf.data.experimental.RandomDataset.map用法及代码示例
- Python tf.data.experimental.CsvDataset.flat_map用法及代码示例
- Python tf.data.experimental.assert_cardinality用法及代码示例
- Python tf.data.experimental.CsvDataset.random用法及代码示例
- Python tf.data.experimental.save用法及代码示例
- Python tf.data.experimental.CsvDataset.cardinality用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.data.experimental.make_batched_features_dataset。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。