Lavoro in un ambiente in cui sono condivise risorse computazionali, ad esempio, abbiamo alcune macchine server dotate di alcune GPU Nvidia Titan X ciascuna.
Per i modelli di dimensioni da piccole a moderate, i 12 GB di Titan X sono in genere sufficienti per 2-3 persone per eseguire l'allenamento contemporaneamente sulla stessa GPU. Se i modelli sono abbastanza piccoli da non consentire a un singolo modello di sfruttare appieno tutte le unità computazionali della GPU, ciò può effettivamente comportare un aumento di velocità rispetto all'esecuzione di un processo di allenamento dopo l'altro. Anche nei casi in cui l'accesso simultaneo alla GPU rallenta il tempo di allenamento individuale, è comunque bello avere la flessibilità di avere più utenti contemporaneamente addestrati sulla GPU.
Il problema con TensorFlow è che, per impostazione predefinita, alloca l'intera quantità di memoria GPU disponibile all'avvio. Anche per una piccola rete neurale a due strati, vedo che tutti i 12 GB di memoria GPU sono esauriti.
C'è un modo per fare in modo che TensorFlow alloca, per esempio, 4 GB di memoria GPU, se si sa che questo è sufficiente per un determinato modello?