https://stackoverflow.com/questions/39758094/clearing-tensorflow-gpu-memory-after-model-execution
由于tensorflow中使用完gpu后并不会自动释放显存,所以在循环利用同一个计算图时会不停的累加显存,无法释放显存。
然后从网上仅发现一种可行方案,即每次执行完计算图后都关闭当前进程,然后用其他进程继续进行这个计算图的计算。这样就可以每次执行完计算图之后自动化的释放显存。
import tensorflow as tf
import multiprocessing
import numpy as np
def run_tensorflow():
n_input = 10000
n_classes = 1000
# Create model
def multilayer_perceptron(x, weight):
# Hidden layer with RELU activation
layer_1 = tf.matmul(x, weight)
return layer_1
# Store layers weight & bias
weights = tf.Variable(tf.random_normal([n_input, n_classes]))
x = tf.placeholder("float", [None, n_input])
y = tf.placeholder("float", [None, n_cl