2015-06-23 12 views
6

ho usato il codice Python per disegnare netto definito nel file di prototesto come:Caffe: Disegno CNN netto

python draw_net.py test.protxt test.png 

Non riesce a disegnare. Non mostra alcun errore ma il file test.png di risultati è un file di immagine bianco vuoto. Qualcuno può aiutarmi a risolverlo? Sarebbe davvero utile per progettare rapidamente nuove reti.

+1

se si utilizza l'interfaccia [DIGITS] (https://github.com/NVIDIA/DIGITS) di NVIDIA per caffe, sarà possibile ottenere questi disegni dall'interfaccia utente. – Shai

+1

BTW quanto è grande la tua rete? puoi disegnare reti più piccole? – Shai

+0

Posso disegnare la rete Siamese (fornita nella libreria) ma non posso disegnare le reti per la classificazione di Imagenet (dato anche nella libreria) – thetna

risposta

2

Ho avuto lo stesso problema. Sulla base di this thread, sono riuscito a risolvere questo problema utilizzando la sintassi di Proto precedente come suggerito. Ad esempio, dovevo eseguire questa operazione:

Rinominare la definizione dei livelli da layers a layer. Tutti tipo di livello di rinomina da documentazione caffe (o con l'esempio file proto) - cioè strato type: CONVOLUTION-type: "Convolution", ecc Sostituire nuova sintassi:

blobs_lr: 1   
blobs_lr: 1   
weight_decay: 1 
weight_decay: 0 

per

param { 
    name: "conv1_w" 
    lr_mult: 1    
    decay_mult: 1 
} 
param { 
    name: "conv1_b" 
    lr_mult: 2    
    decay_mult: 0 
} 

Ora l'analisi e il nuovo-disegno funziona bene. Fare riferimento ai file .prototxt nel pacchetto caffe per ottenere una migliore intuizione, come si presenta la sintassi proto di lavoro.

2

Somwhere a metà 2014, Caffe changed their proto definition for extensibility che causa questo problema. Come risultato di questa modifica, tutti i file di proto devono essere aggiornati alla nuova definizione.

Per fare questo, Caffe fornisce i seguenti strumenti nel distribute/bin/ o .build_release/tools directory:

  1. upgrade_net_proto_binary.bin
  2. upgrade_net_proto_text.bin

Ecco un semplice esempio di come convertire il file di testo proto in un nuovo formato:

./upgrade_net_proto_text.bin /path/to/older_proto_file /path/to/newer_ouput_proto_file