Pythonでデータオーグメンテーションするプログラムを書きました。
5000枚ほどの入力画像を入れたいのですが、
実行するに連れてメモリ使用量がどんどん増加します。
メモリリークが疑えますので、ガーベジコレクション試みましたが解決できませんでした。
解決に向けてのアドバイスを頂きたく質問します。
よろしくおねがいします。

import tensorflow as tf
import numpy as np
from PIL import Image
import glob
import os

import configparser

inifile = configparser.ConfigParser()
inifile.read('./config.ini', 'UTF-8-SIG')
in_image = glob.glob(inifile.get('directory', 'in_dir') + '/*')
in_fileName = os.listdir(inifile.get('directory', 'in_dir'))

#<<debug>>
#print(in_image)
#print(in_fileName)
print(len(in_image))

for num in range(len(in_image)):
    image = tf.read_file(str(in_image[num]))
    direct, filename = os.path.split(str(in_image[num]))
    name, ext = os.path.splitext(filename)

    print('direct:{}, file:{}'.format(direct, filename))

    if image is None:
        print("Not Open")
        continue

    with tf.Session() as sess:
        coord = tf.train.Coordinator()
        threads = tf.train.start_queue_runners(coord=coord)
        for i in range(5):

            if int(inifile.get('format', 'JPG')) == 1:
                tmp_img = tf.cast(tf.image.decode_jpeg(image, channels=3), tf.float32)
            elif int(inifile.get('format', 'BMP')) == 1:
                tmp_img = tf.cast(tf.image.decode_image(image, channels=3), tf.float32)

            if int(inifile.get('data_arg_flip', 'flag_flip')) == 1:
                tmp_img = tf.image.random_flip_left_right(tmp_img)

            if int(inifile.get('data_arg_brightnes', 'flag_brightness')) == 1:
                tmp_img = tf.image.random_brightness(tmp_img, max_delta = int(inifile.get('data_arg_brightnes', 'max_delta')))

            if int(inifile.get('data_arg_contrast', 'flag_contrast')) == 1:
                tmp_img = tf.image.random_contrast(tmp_img, lower=float(inifile.get('data_arg_contrast', 'lower')), upper=float(inifile.get('data_arg_contrast', 'upper')))        

            if int(inifile.get('data_arg_rot', 'flag_rot')) == 1:
                tmp_img = tf.image.rot90(tmp_img, k=i)

            out_img = sess.run(tmp_img)
#            print(img.shape)
#            print(img)

            if int(inifile.get('format', 'JPG')) == 1:
                Image.fromarray(np.uint8(out_img)).save(inifile.get('directory', 'out_dir') + '/' + name + '_{0:03d}.jpg'.format(i))
            elif int(inifile.get('format', 'BMP')) == 1:
                Image.fromarray(np.uint8(out_img)).save(inifile.get('directory', 'out_dir') + '/' + name + '_{0:03d}.bmp'.format(i))

iniファイル

# file directory
[directory]
in_dir = ./original_image
out_dir = ./out_image

# data format
[format]
JPG = 0
BMP = 1

# arg_settings
[data_arg_set]
arg_num = 4

# function settings
[data_arg_flip]
flag_flip = 0

[data_arg_brightnes]
flag_brightness = 1
max_delta = 1
# max : 63

[data_arg_contrast]
flag_contrast = 1
lower = 0.8
upper = 1.0
# min : 0.1
# max : 2.0

[data_arg_rot]
flag_rot = 0