Zoeken…


Invoering

Dit onderwerp gaat over het instellen en beheren van GPU's in TensorFlow.

Er wordt aangenomen dat de GPU-versie van TensorFlow is geïnstalleerd (zie https://www.tensorflow.org/install/ voor meer informatie over de GPU-installatie).

Misschien wilt u ook de officiële documentatie bekijken: https://www.tensorflow.org/tutorials/using_gpu

Opmerkingen

Hoofdbronnen:

Voer TensorFlow alleen uit op CPU - met behulp van de omgevingsvariabele `CUDA_VISIBLE_DEVICES`.

Om ervoor te zorgen dat een GPU-versie TensorFlow-proces alleen op CPU wordt uitgevoerd:

import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"    
import tensorflow as tf

Raadpleeg dit antwoord of de CUDA-documentatie voor meer informatie over de CUDA_VISIBLE_DEVICES .

Voer TensorFlow Graph alleen op CPU uit - met behulp van `tf.config`

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))

Houd er rekening mee dat deze methode voorkomt dat de TensorFlow Graph de GPU gebruikt, maar dat TensorFlow het GPU-apparaat nog steeds vergrendelt zoals beschreven in dit probleem dat bij deze methode is geopend. Het gebruik van CUDA_VISIBLE_DEVICES lijkt de beste manier om ervoor te zorgen dat TensorFlow uit de buurt van de GPU-kaart wordt gehouden (zie dit antwoord ).

Gebruik een bepaalde set GPU-apparaten

Om een bepaalde set GPU-apparaten te gebruiken, kan de omgevingsvariabele CUDA_VISIBLE_DEVICES worden gebruikt:

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="0" # Will use only the first GPU device


os.environ["CUDA_VISIBLE_DEVICES"]="0,3" # Will use only the first and the fourth GPU devices

(Geciteerd uit dit antwoord ; meer informatie over de CUDA-omgevingsvariabelen hier .)

Geef de beschikbare apparaten weer die beschikbaar zijn door TensorFlow in het lokale proces.

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

Beheer de GPU-geheugentoewijzing

Standaard wijst TensorFlow vooraf het hele geheugen van de GPU-kaart toe (wat een waarschuwing CUDA_OUT_OF_MEMORY kan veroorzaken).

Om dit te veranderen, is het mogelijk om

  • wijzig het vooraf toegewezen percentage geheugen met de configuratieoptie per_process_gpu_memory_fraction ,

    Een waarde tussen 0 en 1 die aangeeft welke fractie van de
    beschikbaar GPU-geheugen om vooraf voor elk proces toe te wijzen. 1 betekent
    om al het GPU-geheugen vooraf toe te wijzen, betekent 0,5 het proces
    wijst ~ 50% van het beschikbare GPU-geheugen toe.

  • schakel de pre-toewijzing uit met de optie allow_growth config. Geheugentoewijzing groeit naarmate het gebruik groeit.

    Als dit waar is, wijst de allocator niet vooraf de gehele opgegeven waarde toe
    GPU-geheugenregio, in plaats daarvan klein beginnen en naar behoefte groeien.

Bijvoorbeeld:

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=config) as sess:

of

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess= tf.Session(config=config):

Meer informatie over de configuratie-opties hier .



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow