Domanda

Attualmente sto costruendo una libreria di rete neurale. L'ho costruito come un oggetto grafico per semplicità. Mi chiedo se qualcuno può quantificare i vantaggi in termini di prestazioni di un approccio basato su array. Quello che ho ora funziona molto bene per costruire reti di complessità quasi arbitraria. Sono supportate le reti regolari (backpropped) e quelle ricorrenti. Sto pensando di avere addestrato reti "compilare" in alcuni "più semplici" forma come array.

Volevo solo vedere se qualcuno là fuori avesse avuto qualche consiglio pratico o esperienza nella costruzione di reti neurali che si dispiegavano bene nella produzione. C'è qualche vantaggio nel fatto che il prodotto finale sia basato su array invece che su oggetti grafici?

Il footprint della memoria P.S è meno importante della velocità.

È stato utile?

Soluzione

Tutto dipende dal linguaggio che stai usando - suppongo che tu stia usando un derivato C.

Nelle mie implementazioni ho trovato l'approccio del grafico a oggetti di gran lunga superiore. C'è un certo compromesso nella velocità, ma la facilità di manutenzione supera le chiamate di ricerca dell'oggetto. Tutto dipende dal fatto che tu stia cercando la velocità dell'allenamento o anche la risoluzione della velocità ... Suppongo che tu sia più preoccupato per la velocità dell'allenamento?

Puoi sempre finire con l'ottimizzazione micro di alcuni dei problemi di chiamata dell'oggetto, se necessario.

Considerando il motivo secondario della sottorete delle reti, penso che sia ancora più importante essere basati sugli oggetti - rende molto più semplice estrarre parti del lavoro.

Altri suggerimenti

Le persone hanno iniziato a utilizzare le tecniche GPGPU nell'intelligenza artificiale e avere la tua rete neurale in forma di matrice potrebbe sfruttare le operazioni di matrice molto più veloci nella tua tipica scheda grafica.

Comunque lo implementi, non devi mai dimenticare:

Assicurati solo di non avere il massimo invece del minimo.

http://xkcd.com/534/

È passato un po 'di tempo, ma ricordo che la velocità di solito è solo un problema durante l'allenamento della rete neurale.

Non ho alcuna esperienza personale nella scrittura di una simile biblioteca, ma posso collegarti ad alcuni popolari progetti open source da cui potresti forse imparare. (Personalmente userei solo una di queste librerie esistenti.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top