2015-09-22 9 views
6

Vorrei elaborare separatamente diversi tipi di dati e quindi fonderli in un livello comune. Questo è possibile in Caffe e se sì quale sarebbe il modo migliore per farlo?Fusione di canali di input diversi nel caffè?

Ho letto che si possono definire diversi livelli di dati nello stesso file di prototipo. Ma come fonderli?

Posso solo creare un livello InnerProduct e specificare più livelli bottom? O devo prima concatenare i singoli strati usando un livello Concat?

Per ogni piccolo esempio di codice, sarei molto grato!

+0

Questo dipende da che tipo di fusione che si desidera fare: somma, concat, media? –

+0

Voglio concatenare i vari flussi di input in un livello – mcExchange

+0

È necessario utilizzare un livello '' 'Concat'''. Se si guarda il codice di '' 'InnerProduct''', considera solo il primo input: https://github.com/BVLC/caffe/blob/master/src/caffe/layers/inner_product_layer.cpp#L80- L93 –

risposta

10

Come discusso nei commenti sopra, InnerProduct funziona con un singolo input. La fusione (concatenamento) può essere fatto in una specifica Concat strato con una configurazione simile a questo:

layer { 
    name: "concat" 
    bottom: "in1" 
    bottom: "in2" 
    top: "out" 
    type: "Concat" 
    concat_param { 
    axis: 1 
    } 
} 

La documentazione ufficiale ha maggiori dettagli su quello strato: http://caffe.berkeleyvision.org/tutorial/layers.html