关于tensorflow的数据输入问题(二)

tfrecord格式的内容解析及样例

TFRecord 是谷歌推荐的一种二进制文件格式,理论上它可以保存任何格式的信息。

tfreocrd的核心是其包含一系列的example,每个example可以认为是一条样本。example是tensorflow中的对象类型,用法是tf.train.example。

tf.train.example 只有一个属性features。features也是tensorflow的一个对象类型tf.train.Features,tf.train.Features也只有一个属性feature(后面还会出现一个feature,为了区分,tf.train.Features的属性feature会写成“属性feature”)。属性feature本质上是一个dict,该dict的内容是{"string": tf.train.Feature}。其中string表示特征名。tf.train.Feature同样是tensorflow的一个对象,tf.train.Feature的一个类就表示一个特征,特征的值就保存在tf.train.Feature 中。

对于类型繁多的特征值,tf.train.Feature是怎么保存的呢?tf.train.Feature有三个属性:

byte_list,用于保存string类型的特征值,比如:某人7天内浏览过的店铺id组成的list,或者某人所在的城市,如果只有一个值那就是长度是1的list。

属性byte_list的格式应该是 tf.train.BytesList,tf.train.BytesList只接受bytes类型的入参,不接受string类型。应该注意的是

我们定义一个bytes的时候,注意中英文,例如name = b"taobao" 是合法的,但是 name = b"淘宝" 是非法的,因为用b"string"的方法只接受ascii码的字符串。如果有汉语可以用 name = u'淘宝'.encode('utf-8') 来定义。

float_list :用于保存float类型的特征值,是一个list,类型是tf.train.FloatList

int64_list:用于保存int,long,boolean类型的特征值,是一个list,类型是tf.train.Int64List

数据集record形式的写入与读取

https://my.oschina.net/ahaoboy/blog/2252667

https://my.oschina.net/ahaoboy/blog/2252668

 

posted @ 2021-08-21 18:17  碳酸钾K2CO3  阅读(127)  评论(0)    收藏  举报