You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow1.10中tf.FixedLenFeature等三类特征解析配置的区别是什么

TensorFlow 1.10 版本三类特征解析配置类差异说明

这三个类均为tf.parse_example、tf.parse_single_example、tf.parse_sequence_example等TFRecord特征解析接口的配置参数,用于指定对应特征的解析规则,具体差异如下:

1. tf.FixedLenFeature

  • 适用场景:仅用于解析定长特征,是常规定长特征的通用解析配置
  • 核心参数:必须指定shape(特征的固定维度)、dtype(特征数据类型),可选配置default_value(特征不存在时的默认填充值,需和指定shape匹配)
  • 解析输出:返回和指定shape完全一致的稠密Tensor,无稀疏结果
  • 用法示例:解析长度为128的浮点型 embedding 特征
    tf.FixedLenFeature(shape=[128], dtype=tf.float32, default_value=tf.zeros([128], tf.float32))
    

2. tf.VarLenFeature

  • 适用场景:用于解析无固定长度上限的变长特征,适合长度波动极大的离散特征场景
  • 核心参数:仅需指定dtype,无需配置shape参数
  • 解析输出:返回tf.SparseTensor类型的稀疏张量,可通过tf.sparse_tensor_to_dense接口手动转为稠密张量;若样本不存在该特征,默认返回空稀疏张量
  • 注意:该类解析的多值特征会被展开为一维稀疏张量,不会保留原始的序列维度结构

3. tf.FixedLenSequenceFeature

  • 适用场景:用于解析有固定长度上限的变长序列特征,适合同批次样本序列长度不一致但不超过预设最大值的场景
  • 核心参数:必须指定shape(序列的最大维度,例如序列最大长度为64、每个元素为3维向量则配置为[64, 3])、dtype,可选配置allow_missing(是否允许样本不存在该特征,默认值为False)、default_value(超出实际序列长度的位置的填充值)
  • 解析输出:返回和指定shape一致的稠密Tensor,实际长度不足的位置会自动用default_value填充,会完整保留原始序列的维度结构
  • 注意:该类通常配合tf.parse_sequence_example接口使用,也可在tf.parse_example中用于定长维度的列表类特征解析

核心差异汇总

  • 适用场景区分:
    • 固定维度的特征(如年龄、图片像素矩阵、固定长度的embedding)选用tf.FixedLenFeature
    • 长度波动极大无固定上限的变长特征(如用户全生命周期点击序列、长尾搜索词特征)选用tf.VarLenFeature
    • 预先做过截断处理、最大长度固定的变长序列特征(如分词后截断到64字的句子特征、固定最大长度的语音帧序列)选用tf.FixedLenSequenceFeature
  • 输出类型区分:
    • tf.FixedLenFeature、tf.FixedLenSequenceFeature默认输出稠密Tensor
    • tf.VarLenFeature默认输出稀疏Tensor
  • 参数配置区分:
    • tf.VarLenFeature无需指定shape,其余两类都需要指定shape参数

内容的提问来源于stack exchange,提问作者Bowen Peng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 09:36:01