Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 如何在多任务设置中将多标签数据作为HDF5输入馈送?_Neural Network_Deep Learning_Hdf5_Caffe_Multilabel Classification - Fatal编程技术网

Neural network 如何在多任务设置中将多标签数据作为HDF5输入馈送?

Neural network 如何在多任务设置中将多标签数据作为HDF5输入馈送?,neural-network,deep-learning,hdf5,caffe,multilabel-classification,Neural Network,Deep Learning,Hdf5,Caffe,Multilabel Classification,我有一个数据集,每个图像有大约101个标签。我知道,我必须使用HDF5数据层将数据输入网络。但问题是我有一个多任务设置。我的网络为前5层共享参数,然后分支。在101个标签中,我想向一个任务发送100个标签,向第二个任务发送1个标签 现在,我该怎么做?我能做以下几件事吗 layer { name: "data" type: "HDF5Data" top: "data" top: "label1" ############# A s

我有一个数据集,每个图像有大约101个标签。我知道,我必须使用HDF5数据层将数据输入网络。但问题是我有一个多任务设置。我的网络为前5层共享参数,然后分支。在101个标签中,我想向一个任务发送100个标签,向第二个任务发送1个标签

现在,我该怎么做?我能做以下几件事吗

layer {
      name: "data"
      type: "HDF5Data"
      top: "data"
      top: "label1"           ############# A scalar label
      top :  "label2"          ######## A vector of size 100
      include {
        phase: TRAIN
      }
      hdf5_data_param {
      source: "path/to/the/text/file/test.txt"
      batch_size: 10
      }
}
在上面的设置中有两个顶部blob。一个用于100维向量(
label2
),另一个用于其余标签(
label1
)。
这种设置可能吗

我还从某个地方读到,可以分割多维向量,指定prototxt文件本身中的分割规范。在这种情况下,我将不得不使用一个标签(101维)的单个顶部斑点,然后以某种方式分割标签 100-d和1-d两个矢量中的101-d矢量(标量)。如何做到这一点?
在这种情况下,该层希望:

layer {
      name: "data"
      type: "HDF5Data"
      top: "data"
      top :  "label"          ######## A vector of size 101
      include {
        phase: TRAIN
      }
      hdf5_data_param {
      source: "path/to/the/text/file/test.txt"
      batch_size: 10
      }
}
## Some layer to split the label blob into two vectors of 100-d and 1-d respectively
你知道这种分裂是如何运作的吗

  • 您建议的原始设置(
    “HDF5Data”
    层,带三个
    顶层
    s)在caffe中是可能的,并且完全可以。事实上,caffe支持网络形成的图形中的任何定向a循环数据流。您可以有多个
    底部
    和多个损失层。没关系

  • 如果您坚持使用101维的单个
    标签
    输入,则可以使用
    “切片”
    层将其拆分

    layer {
      type: "Slice"
      name: "slice/label"
      bottom: "label" # assuming shape batch_size-101-1-1
      top: "label1"   # first 1D label
      top: "label2"   # second 100D label
      slice_param {
        axis: 1  # along "channels" dimension
        slice_point: 1 # slice after the first element
      }
    }
    
    有关
    “切片”
    图层参数的更多信息,请参见

  • 您建议的原始设置(
    “HDF5Data”
    层,带三个
    顶层
    s)在caffe中是可能的,并且完全可以。事实上,caffe支持网络形成的图形中的任何定向a循环数据流。您可以有多个
    底部
    和多个损失层。没关系

  • 如果您坚持使用101维的单个
    标签
    输入,则可以使用
    “切片”
    层将其拆分

    layer {
      type: "Slice"
      name: "slice/label"
      bottom: "label" # assuming shape batch_size-101-1-1
      top: "label1"   # first 1D label
      top: "label2"   # second 100D label
      slice_param {
        axis: 1  # along "channels" dimension
        slice_point: 1 # slice after the first element
      }
    }
    
    有关
    “切片”
    图层参数的更多信息,请参见


  • 是的,这是可能的。看看这个:是的,这是可能的。看一看:@Shai我有一个相关的问题,关于hdf5数据的预处理,你能研究一下吗?Thanks@Shai我有一个关于hdf5数据预处理的问题,你能研究一下吗?谢谢