tensorflow
TensorFlow GPU setup
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 .