话不多说,先上个对于各种join情况的总结图:
例如有如下关系的数据:
话不多说,先上个对于各种join情况的总结图:
例如有如下关系的数据:
一般来讲再caffe中经常的数据结构是LMDB鉯及HD5文件再进行训练的时候需要将其转换为对应的格式,自然直接读取原始图像数据也是可以的但是转换之后其读取的效率更高。那麼这篇博客中就借着这两点来梳理一下这两种数据是怎么转换来的在后面的文章中再讲网络训练过程中怎么从这些文件中读取数据。
再caffe環境下怎么调用现有的接口实现训练数据集的转换可以参考我之前的文章:那么调用该接口之后caffe究竟干了一些什么事情呢?接下来就要梳理convert_imageset.cpp文件了
首先,传入的命令行参数进行解析:
通过txt文件读取所有的文件名与对应的label,指定resize的大小
接下来定义数据存储对象并逐行讀取图像数据,并添加图像像素数据与label信息
其中,涉及到图像数据读取与存储:
其中涉及到Google Protobuf的Datum数据结构可以看作是一个三通道(C?H?W)的Matrix。这里给出它的一个使用例子:
对应LMDB文件的数据读取层定义:
话不多说,先上个对于各种join情况的总结图:
例如有如下关系的数据: