Почему Tensorflow медленно обрабатывает изображения - PullRequest
0 голосов
/ 06 июля 2018

Я делаю несколько файлов tfrecord с изображениями для использования с модулем HUB inceptionV3. При создании я использую для TF:

with tf.Session() as sess:
    with open(filePath, 'rb') as inputFileObj:
        image = sess.run(tf.image.decode_image(inputFileObj.read()))
    image = tf.image.convert_image_dtype(image, tf.float32)
    image = sess.run(tf.image.resize_images(image, [299, 299]))

Это занимает около 40 секунд для первых 100 изображений, 110 секунд для следующих 100, и продолжает расти во времени и использовании памяти

При использовании PIL я получаю 1,5 секунды на 100 изображений для одного и того же кода. код с PIL

img = pil_image.open(filePath)
if img.mode != 'RGB':
    img = img.convert('RGB')
img = img.resize([299,299], pil_image.BICUBIC)
img = np.asarray(img)
scale = 1. / np.iinfo(img.dtype).max
img = img.astype(np.float32)*scale

Мне хочется сказать, что у Tensorflow есть утечки памяти?

с использованием tenorflow 1.8.0 Полный цикл - открыть файл и записать в TFRecord

writer = tf.python_io.TFRecordWriter(outputFile)
totalDocs = 0
lastTime = time.time()
for picFile, label in inputData:
    totalDocs += 1
    if totalDocs%100 == 0:
        print "done %d in %f sec" % (totalDocs, time.time() - lastTime)
        lastTime = time.time()
    image = open_resize_image(picFile)
    feature = {'label': _bytes_feature(label),
               'image':_bytes_feature(tf.compat.as_bytes(image.tostring()))}
    example = tf.train.Example(features=tf.train.Features(feature=feature))
    writer.write(example.SerializeToString())
writer.close()
...