当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.data.experimental.make_batched_features_dataset用法及代码示例


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 将函数键映射到 FixedLenFeatureVarLenFeature 值。见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 将函数键映射到 TensorSparseTensor 对象。

抛出

  • 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]),
}

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.data.experimental.make_batched_features_dataset。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。