dataset FixedLenFeature使用小坑

背景

接上文,在使用dataset进行样本解析之前,我们需要按照先定义一个解析字典,告诉dataset如何去解析每个样本,这个字典就是用来指定对于每条输入样本的每一列应该用什么的feature去解析,dataset默认提供了FixedLenFeature,VarLenFeature,FixedLenSequenceFeature等。顾名思义,FixedLenFeature用于处理定长的特征,VarLenFeature用于处理变长的特征,FixedLenSequenceFeature用于处理定长的序特征。本文踩的就是FixedLenFeature的坑。

案例

features_config[fea_name] = tf.FixedLenFeature([], tf.int64)
features_config[fea_name] = tf.FixedLenFeature([1], tf.int64)

FixedLenFeature在处理特征时,会根据输入的shape来得到相应的输出tensor的shape。
当输入shape = []时,输出tensor的shape=(batch_size,),
当输入shape=[k]时,输出tensor的shape= (batch_size,k)

tf在coding的过程中很多时候会因为输入tensor的shape问题而导致执行失败。想起当时在看Andrew NG的教学视频时,他也提到了这个问题,他给建议是,每次在进行计算之前一定要对tensor进行reshape从而保证后续的操作能正常进行。

备注:小坑一枚,记录下

你可能感兴趣的:(dataset FixedLenFeature使用小坑)