训练文件中读取数据和标签(多标签)prototxt的top与slice究竟是什么区别

普通但标签的lmdb准备文件txt的格式是这样的:

1.jpg 0
2.jpg 1
3.jpg 0
4.jpg 2

所以我们train.prototxt中Data层会有两次Top
第一次Top出来的是图像地址,第二次Top出来的就是标签,其中是一个空格隔开的。

而多标签处理的时候,txt文件是这样的:

1.jpg 0 1 3 4
2.jpg 1 7 5 4
3.jpg 0 5 6 7
4.jpg 2 0 6 5

但是train.prototxt中Data层也只用了两次Top,第一次Top出图像地址,第二次是标签群,然后对于标签群进行slice操作,point选择1,2,3

为什么不是5次Top呢?第一次Top出图像地址,第2、3、4、5次Top出各个标签,谢谢


====================================================================

关于这个top的问题,是一个prefetch的过程
根据某drive_data.cpp源码,过程中,分出blob的data与label,如果要输出第三个top是可行的,label可以为label(0),label(1),第一次top出data,第二次top出label(0),第三次top出label(1),当然这需要在hpp中把最大输出blob量的return从2改为3。今天简要记一下要点。
已邀请:

B-Kalasiky

赞同来自:

因为data只能有两个top,大于两个会出错

要回复问题请先登录注册