Sejas izteiksmju sistēmu pārkvalificēšanai
1. papildinājums:
Darknet Deep Learning Framework pirmkoda analīze: detalizēts ķīniešu komentārs, kas aptver ietvara principus un ieviešanas sintakses analīzi
https://github.com/hgpvision/darknet
darknet ir salīdzinoši viegls atvērtā koda dziļās mācīšanās ietvars, kas pilnībā balstīts uz C un CUDA, tā galvenās funkcijas ir viegli instalējamas, bez atkarībām (var izmantot OpenCV), ļoti pārnēsājams un atbalsta gan CPU, gan GPU skaitļošanas metodes.
Salīdzinot ar TensorFlow, tumšais tīkls nav tik spēcīgs, bet tā ir arī tumšā tīkla priekšrocība:
- tumšais tīkls ir pilnībā ieviests C valodā, bez jebkādām atkarībām, protams, jūs varat izmantot OpenCV, bet izmantot to tikai attēlu parādīšanai, lai labāk vizualizētu;
- tumšais tīkls atbalsta CPU (tāpēc nav svarīgi, vai jums nav GPU) un GPU (CUDA/cuDNN, protams, labāk ir izmantot GPU);
- Tas ir tieši tāpēc, ka tas ir salīdzinoši viegls un tam nav jaudīga API, piemēram, TensorFlow, tāpēc es uzskatu, ka tam ir vēl viena elastības garša, kas ir piemērota pamatā esošā izpētei un to var ērtāk uzlabot un paplašināt no apakšas.
- Ir līdzības starp tumšā tīkla ieviešanu un kafejnīcas ieviešanu, un es esmu pazīstams ar tumšo tīklu un uzskatu, ka ir noderīgi sākt darbu ar kafejnīcu.
2. papildinājums:
Autors: Zhihu lietotājs Saikne:https://www.zhihu.com/question/51747665/answer/145607615 Avots: Zhihu Autortiesības pieder autoram. Komerciāliem atkārtotiem izdevumiem, lūdzu, sazinieties ar autoru, lai saņemtu atļauju, un nekomerciāliem atkārtotiem izdevumiem, lūdzu, norādiet avotu.
Trīs svarīgākās struktūras definīcijas Darknet ir network_state, tīkls un slānis; Jaunā network_state versija ir integrēta tīklā.
Kods vispirms var ignorēt GPU daļu, un dažāda veida tīkla slāņi definē šāda veida izpildes noteikumus, izmantojot funkciju rādītājus uz priekšu atpakaļ un atjaunināt slānī. Piemēram, savienotajiem slāņiem ir trīs metodes, piemēram, forward_connected_layer backward_connected_layer update_connected_layer gru slānis utt.;
Atomu operācijas ir tikai blas.c un gemm.c, tīkla operācijas ir network.c, un vissvarīgākās ir train_network_datum, train_networks, train_network_batch un network_predict;
train_network_datum ir float_pair, kas tiek izmantots ievades datiem, tas ir, peldošajiem *x un peldošajiem *y pāriem;
train_networks ir apmācīts network_kernel.cu vienlaicīgā vītņu režīmā, un parametrs ir dati;
Viens punkts, tumšais tīkls ir viens pavediens CPU režīmā, un vairāku GPU grafikas režīmā tas train_networks atbalsta vairāku karšu darbību, un tā ir arī ieeja, lai pārveidotu izplatīšanas vairāku resursdatoru tumšā tīkla darbību, kur jūs varat redzēt apmācīto svara datu apvienošanu un mērogu.
train_network_datum Izpildīt forward_network { layerwise forward network } backward_network { layerwise reverse network } un izpildīt update_network ( ,,, ātrums, impulss, sabrukums zem reižu skaita (*net.seen %apakšnodaļas) ir apmierināts;
Lietotāja definēta tīkla profila apstrādei parse_network_cfg apmācības rezultāti tiek nolasīti load_weights
Tas ir mugurkauls.
Ja jums ir jāstrādā ar datu avotiem ar īpašām vajadzībām, jums jāskata data.c, lai sāktu darbu.
CFG profilam fokusa regulēšana (protams, visi parametri ir svarīgi, var būt jāpielāgo) un fokusa globālais parametrs treniņa laikā: sabrukšanas impulss learning_rate Šie trīs ir saistīti ar konverģences ātrumu. politika ir svaru politika, ievades partijas (un ar to saistītās apakšnodaļas) izvadi ir saistīti ar datu caurlaides dimensiju, un jaunākajā versijā, šķiet, ir labojumi šeit.
|