我正在運行以下程序,並且每次點擊「構建」API調用時,都會看到有關處理完成後另一個1 GB內存的情況。我試圖從內存中消除所有的東西,但我不知道還有什麼。Tensorflow,Flask和TFLearn內存泄漏
import tensorflow as tf
import tflearn
from flask import Flask, jsonify
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.normalization import local_response_normalization
from tflearn.layers.estimator import regression
app = Flask(__name__)
keep_prob = .8
num_labels = 3
batch_size = 64
class AlexNet():
def __init__(self):
@app.route('/build')
def build():
g = tf.Graph()
with g.as_default():
sess = tf.Session()
# Building 'AlexNet'
network = input_data(shape=[None, 227, 227, 3])
network = conv_2d(network, 96, 11, strides=4, activation='relu')
network = max_pool_2d(network, 3, strides=2)
network = local_response_normalization(network)
network = conv_2d(network, 256, 5, activation='relu')
network = max_pool_2d(network, 3, strides=2)
network = local_response_normalization(network)
network = conv_2d(network, 384, 3, activation='relu')
network = conv_2d(network, 384, 3, activation='relu')
network = conv_2d(network, 256, 3, activation='relu')
network = max_pool_2d(network, 3, strides=2)
network = local_response_normalization(network)
network = fully_connected(network, 4096, activation='tanh')
network = dropout(network, keep_prob)
network = fully_connected(network, 4096, activation='tanh')
network = dropout(network, keep_prob)
network = fully_connected(network, num_labels, activation='softmax')
network = regression(network, optimizer="adam",
loss='categorical_crossentropy',
learning_rate=0.001, batch_size=batch_size)
model = tflearn.DNN(network, tensorboard_dir="./tflearn_logs/",
checkpoint_path=None, tensorboard_verbose=0, session=sess)
sess.run(tf.initialize_all_variables())
sess.close()
tf.reset_default_graph()
del g
del sess
del model
del network
return jsonify(status=200)
if __name__ == "__main__":
AlexNet()
app.run(host='0.0.0.0', port=5000, threaded=True)
內存分配發生在這裏:sess.run(tf.initialize_all_variables()) –
也許嘗試'free && sync && echo 3>/proc/sys/vm/drop_caches && free' –
我在Mac上本地運行這個程序,所以我不確定等效命令是什麼。 –