tensorflow:CUDA\u错误\u内存不足总是发生
我将使用1080TI(11GB)GPU的软件包来训练seq2seq模型。使用不同的网络大小(偶数),我总是会遇到以下错误:tensorflow:CUDA\u错误\u内存不足总是发生,tensorflow,Tensorflow,我将使用1080TI(11GB)GPU的软件包来训练seq2seq模型。使用不同的网络大小(偶数),我总是会遇到以下错误: tensorflow似乎试图占用GPU的内存总量(10.91GiB),但显然只有10.75GiB可用。您应该注意一些提示: 1-使用tensorflow文档中的内存增长:“在某些情况下,进程只需要分配可用内存的一个子集,或者只根据进程的需要增加内存使用量。tensorflow在会话上提供了两个配置选项来控制这一点。” 2-您是否使用批处理进行培训?还是一次提供全部数据?如果
tensorflow似乎试图占用GPU的内存总量(10.91GiB),但显然只有10.75GiB可用。您应该注意一些提示: 1-使用tensorflow文档中的内存增长:“在某些情况下,进程只需要分配可用内存的一个子集,或者只根据进程的需要增加内存使用量。tensorflow在会话上提供了两个配置选项来控制这一点。”
2-您是否使用批处理进行培训?还是一次提供全部数据?如果是,则减小批处理大小您应该注意一些提示: 1-使用tensorflow文档中的内存增长:“在某些情况下,进程只需要分配可用内存的一个子集,或者只根据进程的需要增加内存使用量。tensorflow在会话上提供了两个配置选项来控制这一点。”
2-您是否使用批处理进行培训?还是一次提供全部数据?如果是,则减小批处理大小除了关于内存增长的两个建议外,您还可以尝试:
sess_config = tf.ConfigProto()
sess_config.gpu_options.per_process_gpu_memory_fraction = 0.90
with tf.Session(config=sess_config) as sess:
...
有了它,您可以限制程序分配的GPU内存量,在这种情况下,限制为可用GPU内存的90%。也许这足以解决网络试图分配比可用内存更多的内存的问题。
如果这还不够,则必须减小批处理大小或网络大小 除了关于记忆增长的两个建议外,您还可以尝试:
sess_config = tf.ConfigProto()
sess_config.gpu_options.per_process_gpu_memory_fraction = 0.90
with tf.Session(config=sess_config) as sess:
...
有了它,您可以限制程序分配的GPU内存量,在这种情况下,限制为可用GPU内存的90%。也许这足以解决网络试图分配比可用内存更多的内存的问题。
如果这还不够,则必须减小批处理大小或网络大小 我使用批量训练。批量大小为32,减少到16是没有用的。问题是我的GPU根本无法分配10.91GiB。我正在使用批处理训练。批量大小为32,减少到16是没有用的。问题是我的GPU根本无法分配10.91GiB。
sess_config = tf.ConfigProto()
sess_config.gpu_options.per_process_gpu_memory_fraction = 0.90
with tf.Session(config=sess_config) as sess:
...