Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我们可以指定最大绝对GPU内存使用量吗_Python_Tensorflow - Fatal编程技术网

Python 我们可以指定最大绝对GPU内存使用量吗

Python 我们可以指定最大绝对GPU内存使用量吗,python,tensorflow,Python,Tensorflow,Tensorflow允许指定进程使用的最大分数GPU内存: import tensorflow as tf import keras gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.2) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) keras.backend.set_session(sess) 使用上述方法,我的代码最终消耗了大约2

Tensorflow允许指定进程使用的最大分数GPU内存:

import tensorflow as tf
import keras
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.2)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
keras.backend.set_session(sess)
使用上述方法,我的代码最终消耗了大约2203MB/7982MB的GPU RAM。 注:2203MB超过7982的20%

现在我的代码有时会在不同的GPU上执行。而且gpu的使用百分比在它们之间也不能很好地工作(因为不同的gpu有不同数量的RAM)

是否有可能指定要在
绝对
术语而不是
相对
术语中使用的最大GPU内存分数

正在查找类似(
每个进程\u gpu\u内存\u inmb
):

# Looking for something like `per_process_gpu_memory_inmb` option
gpu_options = tf.GPUOptions(per_process_gpu_memory_inmb=2203)   
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
keras.backend.set_session(sess)

当然可以!您可以创建具有硬编码内存大小的虚拟GPU设备:

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  # Restrict TensorFlow to only allocate 2203 MB of memory on the first GPU
  try:
    tf.config.experimental.set_virtual_device_configuration(
        gpus[0],
        [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2203)]) # limit in megabytes
    logical_gpus = tf.config.experimental.list_logical_devices('GPU')
    print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
  except RuntimeError as e:
    # Virtual devices must be set before GPUs have been initialized
    print(e)

您看起来像这样限制GPU内存增长的
,请查看“谢谢”。一旦我尝试了您的解决方案,将对其进行投票,并将其标记为已接受。