TFRecord 中 FixedLenFeature、VarLenFeature、FixedLenSequenceFeature 说明

本文介绍了TensorFlow中用于解析输入样本数据的FixedLenFeature、VarLenFeature和FixedLenSequenceFeature。FixedLenFeature用于解析定长特征,其参数包括shape(数据形状)、dtype(数据类型)和default_value(默认值)。VarLenFeature则适用于变长特征。在实际项目中,例如解析记录时,会结合这些功能来构建解析字典,确保数据正确解析。
部署运行你感兴趣的模型镜像

为了解析每个输入样本每一列数据,需要定义一个解析字典。tensorflow提供了三种方式:FixedLenFeature、VarLenFeature、FixedLenSequenceFeature,分别解析定长特征、变长特征、定长序列特征。
首先:
FixedLenFeature() 函数有三个参数:
(1)shape:输入数据的shape。
(2)dtype:输入的数据类型。
(3)default_value:如果示例缺少此功能,则使用该值。它必须与dtype和指定shape兼容。

注意点:

tf.FixedLenFeature(shape=[], dtype=tf.int64)  # 解析得到的tensor的形状形如(bs, )
tf.FixedLenFeature(shape=[k], dtype=tf.int64) # 解析得到的tensor的形状形如(bs,k )
# 所以对于定长特征要加入维度,否则就是一个值,一般对label 不传长度
features = tf.parse_single_example(serialized_example,
                                       features={
                                           'label': tf.FixedLenFeature([381], tf.int64)
                                       })
# 项目中一个解析的实例代码
def _parse_record(example_proto):
    features = {
        "label": tf.FixedLenFeature([], tf.float32),
        "feat_ids": tf.FixedLenFeature([fixed_onehot_len], tf.int64),   # 必须写长度,且是onehot固定部分的总长度
        "feat_vals": tf.FixedLenFeature([fixed_onehot_len], tf.float32),  # 必须写长度,且是onehot固定部分的总长度
        "mul_feat_ids": tf.VarLenFeature(tf.int64),
        "mul_feat_vals": tf.VarLenFeature(tf.float32)
    }
    parsed_features = tf.parse_single_example(example_proto, features=features)
    return parsed_features                                       

附录:
dataset FixedLenFeature使用小坑

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值