从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 表示要在单个批次中组合的记录数。 -
featuresdict将函数键映射到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_sizeShuffleDataset 的缓冲区大小。大容量确保更好的洗牌,但会增加内存使用和启动时间。 -
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
