TFRRecordでのFixedLenFeature、VarLenFeature、FixedLenSequenceFeatureの説明


各入力サンプルの各カラムのデータを解析するには、解析辞書を定義する必要があります.tensorflowは、FixedLenFeature、VarLenFeature、FixedLenSequenceFeatureの3つの方法を提供し、それぞれ定長特徴、変長特徴、定長シーケンス特徴を解析する.まず、FixedLenFeature()関数には、(1)shape:データを入力するshapeの3つのパラメータがあります.(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使用小坑