tensorflow går tom for minnetips

Tensorflow Runs Out Memory Tips



Når programmet kjøres, vises det ofte ved ledeteksten:

Allocator (GPU_0_bfc) gikk tom for minne og prøvde å tildele 2.26GiB med freed_by_count = 0. Innringeren indikerer at dette ikke er en feil, men kan bety at det kan være ytelsesgevinster hvis mer minne var tilgjengelig.



Først, se på noen grunnleggende konfigurasjon ubutun server, klikk på [System Settings] -knappen, åpne [Detaljer], følgende skjermbilde vises:





Spørsmålet er at totalt minne er 30,9 GHz, mye høyere enn 2,26 GB, (1 MB = 1024 KB, 1 GB = 1024 MB, ifølge Wikipedia's oversettelse av note, GB (gigabyte) kapasitet i desimalenheter, tilsvarer 1 GB 1 000 000 000 byte. Den binære enheten av kapasitet brukes GiB (Gibibyte) er Giga Binary Byte, lik 1.073.741.824Bytes. Derfor, en 160 GB harddisk faktisk bare 149.0116119GiB) hvorfor skulle rapportere feil? Fordi dette problemet var på tide, vanligvis i storskala program ble kjørt med en dyp læring av GPU, vil føre til mangel på nødvendig GPU-minne, at dette er hvordan det skjedde? Se først på dataminnet, skriv inn en terminal nvidia-smi, se følgende grensesnitt:

Se en GPUs minne er 10989MiB (ca 10,7GiB), problemet igjen, minne er også en slik feil enn nødvendig 2.26GiB stor ah, hvordan vil det be om det? Internett og ser hovedsakelig på følgende løsninger:



Løsning: 1 reduksjon i batchstørrelse, en reduksjon av GPU-minnetildelingsbehov

2. Hvis minnet er relativt stort, kan du bytte CPU

3. tilbakestillingsstørrelsen for inngangsbildet, dvs. redusere minneforbruket ved å redusere bildestørrelsen

Velg en av de ovennevnte metodene, problemet kan løses, men vil fortsatt vite hvilket prinsipp som var rolig .. for så å se opp når (for eksempel basert på dybden av læringen) kjøretid, tensorflyt i programminnetildelingen metode:

https://blog.csdn.net/frankzd/article/details/102621817 (Se bloggen, du kan ganske enkelt analysere minnefotavtrykket til sin egen kode) fordi programmet mitt er et rammeverk GAN-nettverk, CNN før med samme rammekonfigurasjon og treningsmetoder ikke ville være relevant GPU som ble bedt om av minnet, det er fordi GAN-nettverk der ble også behandlet diskriminator (denne legger til nettverksvektene), så vil det føre til minne større enn CNN? Hvis det er å vite i kommentarfeltet - vingevenner

Noen relaterte biter og biter, vanligvis i programmet, vil ha følgende kode:

Når parameteren allow_soft_placement er satt til True, hvis operasjonen ikke kan utføres av GPUen, vil TensorFlow automatisk sette den på CPUen. Ytterligere minne kan tildeles der en økt. som følger: