neurali:ispike
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
neurali:ispike [2015/08/23 14:42] – profpro | neurali:ispike [2023/06/09 10:29] (current) – [YARP] profpro | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======iSpike====== | ||
+ | |||
+ | http:// | ||
+ | |||
+ | {{neurali: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * Robot utilizzabili: | ||
+ | * Vedere ricerca [[neurali: | ||
+ | |||
+ | Si può utilizzare questa **libreria C++** per scrivere un programma che trasforma un file immagine, o altri input, in una serie di impulsi da inviare ad una rete neurale (e viceversa impulsi provenienti da una rete neurale agli attuatori di un robot). | ||
+ | |||
+ | Il programma ottenuto si troverà in mezzo tra il robot e il simulatore di rete neurale. | ||
+ | Questo programma dovrà usare anche un' | ||
+ | |||
+ | - Da un lato è stato usato con [[neurali: | ||
+ | - Dall' | ||
+ | |||
+ | Per poter interagire con [[neurali: | ||
+ | |||
+ | [YARP] <-> [programma con iSpike] <-> [NeMo] | ||
+ | |||
+ | Espansione del precedente schema | ||
+ | |||
+ | [YARP/file] -> [reader] -> [input channel] -> [un vector in C++] -> [SpikeStream / NeMo] | ||
+ | |||
+ | [YARP/file] <- [writer] <- [output channel] <- [un vector in C++] <- [SpikeStream / NeMo] | ||
+ | |||
+ | * [reader] e [writer] si occupano della lettura dei dati | ||
+ | * [channel] si occupano della trasformazione in spike | ||
+ | |||
+ | Esempio: un oggetto AngleReader legge un angolo e lo passa ad un canale JointInputChannel che lo trasforma in modo da poterlo fornire come input ad una rete neurale. | ||
+ | |||
+ | I tempi con cui si inviano impulsi alla rete neurale devono essere sincronizzati con i passi con cui avanza temporalemente la rete neurale (ad es. passi di 1 ms) | ||
+ | |||
+ | Il numero di neuroni della rete (le dimensioni della rete) a cui sono destinati gli spike prodotti è uno dei parametri che si devono fornire alle funzioni di iSpike | ||
+ | |||
+ | ==== Installazione==== | ||
+ | |||
+ | dipendenze | ||
+ | boost (come nemo) | ||
+ | |||
+ | |||
+ | mkdir build | ||
+ | cd build | ||
+ | cmake .. | ||
+ | -configurazione? | ||
+ | -generazione? | ||
+ | make | ||
+ | make install | ||
+ | |||
+ | ;;; NOTA: ;;; modificando un sorgente ricompila solo quello compilato (devi usare make clean) | ||
+ | |||
+ | ;;; NOTA2: ;;; aggiungere un nuovo file sorgente RICHIEDE anche modificare nel file **src/ | ||
+ | |||
+ | [[neurali: | ||
+ | ====Codifica dei dati==== | ||
+ | |||
+ | |||
+ | Se si vuole trasformare un numero o un file in una serie di impulsi neurali, come fare? | ||
+ | |||
+ | |||
+ | iSpike adotta la tecnica population coding, vista nella [[neurali: | ||
+ | |||
+ | ==== YARP ==== | ||
+ | |||
+ | Il protocollo di comunicazione testuale usato da iSpike per comunicare con [[neurali: | ||
+ | | ||
+ | |||
+ | ==== Performance ==== | ||
+ | |||
+ | Usando neuroni con [[neurali: | ||
+ | |||
+ | Propriocezione | ||
+ | |||
+ | * 100 neuroni per codificare l' | ||
+ | * x 53 motori da misurare per iCub | ||
+ | |||
+ | * webcam 320x200 = 7680 pixel | ||
+ | * scomposta in 3 immagini dal preprocessamento immagini (simulazione foveation) | ||
+ | | ||
+ | Devo usare** due elaboratori** perché **non riesce** ad elaborare immagini **in tempo reale** | ||
+ | | ||
+ | [[neurali:: | ||
+ | |||
+ | [[neurali:: | ||
+ | |||
+ | |||
+ | |||
+ | [[neurali:: | ||