Управление стеком памяти Tensorflow - PullRequest
0 голосов
/ 28 февраля 2019

Я использую tenorflow для файлов NIfTI, иначе файлов .nii.Я сделал модель, открыл сессию и запустил код.Мои коды следующие:

def memory_usage_psutil():
    # return the memory usage in GB
    import psutil
    process = psutil.Process(os.getpid())
    mem = process.memory_info()[0] / float(2 ** 30)
    return mem


sess = tf.Session()
sess.run(tf.global_variables_initializer())
for epoch in range(50):
for batch in range(len(imgs)//batch_size):

    batch_imgs = [i.get_fdata() for i in imgs[batch*batch_size: (batch+1)*batch_size]]
    with tf.device('/gpu:0'):
        _, loss_val = sess.run([train, loss], feed_dict = {X:batch_imgs, Y:fi_train[batch*batch_size:(batch+1)*batch_size]})

    print(epoch+1, '-th Epoch |', batch+1, '-th batch | Loss : ', loss_val)
    print('Memory usage: %s (kb)'% resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)
    print("Memory usage: %s(gb)"%memory_usage_psutil())

    tf.keras.backend.clear_session()
    del _
    del batch_imgs
    del loss_val

И его результаты таковы:

result capture

Короче говоря, использование памяти моего компьютерапостоянно увеличивается, хотя я использовал код

tf.keras.backend.clear_session()
del _
del batch_imgs
del loss_val

Кроме того, я пытался tf.contrib.keras.backend.clear_session(), tf.reset_default_graph(), но они не работают.Как я могу решить эту проблему?Кто-нибудь знает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...