tf1.x版RandLA-Net源码解读_2:Dataset
前面一篇文章介绍了RandLANet训练点云时的数据 预处理操作,这篇博客开始记录RandLANet训练模型时的读取数据流阶段,这个部分算是RandLANet网络比较核心的部分,也就是如何将一个整体的点云一块一块的送入网络进行训练。
一、前言
tensorflow1.x是通过tf.data.Dataset和tf.data.Iterator来不断的组织将要输入模型的数据,有点像torch的Dataset和Datasetloader。作为一个torch用户来说,调试tensorflow代码十分的头疼,尤其是1.x版本的代码,看这段代码前我事先复习了tf1.x的数据处理这部分的操作流程,大体顺序如下,
创建读取数据的生成器,根据生成器创建数据集、设置数据集的batch_size、设置预处理的map操作,初始化迭代器。
详细内容见参考给出的两个链接。
二、RandLA-Net的dataset
在randlanet的数据流中,我觉得比较关键的有两部分,读取原始数据的生成器函数get_batch_gen
和对数据的预处理操作的map
函数,因为我自己的数据集和Semantic3D比较类似,所以我以Semantic3D的数据流源码来解读。