qq_19691927
阮十二
采纳率0%
2021-03-04 16:17

Tensorflow Session关闭后内存不释放

如下图所示,Tensorflow 开启一个Session as sess 进行预测,内存使用暴涨, sess.close 后内存不释放, 请问怎么及时释放内存?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • Brentbin Brentbin 1月前
    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_classes])
        pred = multilayer_perceptron(x, weights)
    
        cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y))
        optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)
    
        init = tf.global_variables_initializer()
    
        with tf.Session() as sess:
            sess.run(init)
    
            for i in range(100):
                batch_x = np.random.rand(10, 10000)
                batch_y = np.random.rand(10, 1000)
                sess.run([optimizer, cost], feed_dict={x: batch_x, y: batch_y})
    
        print "finished doing stuff with tensorflow!"
    
    
    if __name__ == "__main__":
    
        # option 1: execute code with extra process
        p = multiprocessing.Process(target=run_tensorflow)
        p.start()
        p.join()
    
        # wait until user presses enter key
        raw_input()
    
        # option 2: just execute the function
        run_tensorflow()
    
        # wait until user presses enter key
        raw_input()

    这样使用session会解决你的问题

    https://github.com/tensorflow/tensorflow/issues/1727

    这里是当时的issue

    点赞 1 评论 复制链接分享