Python 我们可以指定最大绝对GPU内存使用量吗
Tensorflow允许指定进程使用的最大分数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
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内存增长的
,请查看“谢谢”。一旦我尝试了您的解决方案,将对其进行投票,并将其标记为已接受。