三、TAO——数据集
TAO提供了训练jupyter notebook中的示例,使用的都是Kitti的数据集,最后转换成 TFRecord
格式
1 什么是tfrecord
TFRecord是Google官方推荐的一种数据格式,是Google专门为TensorFlow设计的一种数据格式。
2 TFRecord原理
TFRecord 并非是TensorFlow唯一支持的数据格式,你也可以使用CSV或文本等格式,但是对于TensorFlow来说,TFRecord 是最友好也是最方便的。 tf.Example是TFRecord的基本结果,其实他就是一个Protobuffer定义的message,表示一组string到bytes value的映射。TFRecord文件里面存储的就是序列化的tf.Example。在github上tensorflow的源码就能看到其定义
message Example {
Features features = 1;
};
里面只有一个变量features。如果我们继续查看Features
message Features {
// Map from feature name to feature.
map<string, Feature> feature = 1;
};
features里面就是一组string到Feature的映射。其中这个string表示feature name,后面的Feature又是一个message
继续查看Feature的定义
message Feature {
// Each feature can be exactly one kind.
oneof kind {
BytesList bytes_list = 1;
FloatList float_list = 2;
Int64List int64_list = 3;
}
};
到这里,我们就可以看到tfrecord里存储的真正数据类型有三种 bytes_list: 可以存储string 和byte两种数据类型。 float_list: 可以存储float(float32)与double(float64) 两种数据类型 。 int64_list: 可以存储:bool, enum, int32, uint32, int64, uint64 。
3 实操生成tfrecords文件
pip uninstall opencv-python
pip install opencv-python-headless