Vi föreslår ett systematiskt tillvägagångssätt för att minska minneskonsumtionen av djup neurala nätverk utbildning. Specifikt, vi designar en algoritm som kostar O ( ε n) minne för att träna ett n skikt nätverk, med endast beräkningskostnaden för en extra framåt pass per mini-batch. Eftersom många av de toppmoderna modellerna når den övre gränsen för GPU-minnet gör vår algoritm det möjligt att utforska djupare och mer komplexa modeller och bidrar till att främja innovationerna inom djupinlärning. Vi fokuserar på att minska minneskostnaden för att lagra de mellanliggande funktionskartorna och gradienterna under träningen. Beräkning grafanalys används för automatisk på plats drift och minnesdelning optimeringar. Vi visar att det är möjligt att byta beräkning för minne som ger en mer minneseffektiv träningsalgoritm med lite extra beräkningskostnad. I det extrema fallet visar vår analys också att minnesförbrukningen kan minskas till O(log n) med så lite som O(n log n) extra kostnad för framåt beräkning. Våra experiment visar att vi kan minska minneskostnaden för en 1000-lagers djup restnät från 48G till 7G med endast 30% extra drifttid kostnad på ImageNet problem. Likaså, betydande minneskostnad minskning observeras i utbildning komplexa återkommande neurala nätverk på mycket långa sekvenser.
Den rekursiva algoritmen för Chen et al. REF minskar det minne som krävs till O(log L) och ökar samtidigt beräkningskostnaden för O(L log L).
Training Deep Nets with Sublinear Memory Cost
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}