Caffe SigmoidCrossEntropyLoss Layer Multilabel classification c++
<p>I have a network that gets 2 input images, and these two images belong to more than one class out of 9 classes. All the examples I've seen - in Caffe docs - load input image directly from prototxt, however I feed in the information through my c++ code.</p>

<p>My input layer looks as follows</p>

<pre><code>input: "data"
input_shape{dim:20 dim:6 dim:100 dim:100}

input: "class_label"
input_shape{dim:20 dim:9}
</code></pre>

<p>The loss layer looks as follows</p>

<pre><code>layer {
  name: "classes"
  type: "InnerProduct"
  bottom: "ip2"
  top: "classes"
  param { lr_mult: 1 }
  param { lr_mult: 2 }
  inner_product_param {
    num_output: 9
    weight_filler {  type: "xavier" }
    bias_filler { type: "constant" }
  }
}


layer {
  name: "class_loss"
  type: "SigmoidCrossEntropyLoss"
  bottom: "classes"
  bottom: "class_label"
  top: "class_loss"
}
</code></pre>

<p>My assumption is that the input should be a stream looking like this 
[0 0 1 0 1 0 1 0 0], where 1 signifies that the images belong to the class and 0 means that it doesn't, is this true?</p>

<p>My second question is, what should I expect from the output of SigmoidCrossEntropyLoss layer (e.g SoftmaxWithLoss outputs probabilities)?</p>