Оценивать начало в TensorFlow несколько раз

Я использую tfslim для оценки сети inception_v4.

Я классифицирую несколько изображений, и мне нужно выполнять повторную оценку, но у меня не будет всех изображений одновременно, поэтому я не могу создать один пакет и вызвать метод оценки_зона. Я хотел бы избегать восстановления и настройки модели каждый раз, поскольку я могу оценивать несколько сотен раз за сеанс.

Я пытаюсь что-то вроде следующего:

import numpy
import tensorflow as tf
import rasterio
import models.slim.preprocessing.preprocessing_factory
import models.slim.nets.nets_factory

net_fn = models.slim.nets.nets_factory.get_network_fn('inception_v4', num_classes=5, is_training=False)
preprocessing = models.slim.preprocessing.preprocessing_factory.get_preprocessing('inception_v4', is_training=False)
img1 =rasterio.open('test1.png').read(1)  # WxHx3 uint8
images = [img1]  # extra images go here..all will be the same size

with tf.Session() as sess:
  pl = tf.placeholder(img1.dtype, img1.shape, name="InputImg")
  img1_p = preprocessing(pl, 299, 299)
  batch1 = tf.train.batch([img1_p], 1, enqueue_many=False, num_threads=1, capacity=1)
  logits, _ = net_fn(batch1)
  saver = tf.train.Saver(tf.contrib.slim.get_variables_to_restore())
  saver.restore(sess, "model.ckpt.12000")
  for img in images:
    pred = sess.run(logits, {pl:img})
    print(pred)

Когда я запускаю это, система, кажется, просто зависает в течение длительного времени. Когда я использую функцию tfslimvalu_once(), я получаю результаты примерно через 30 секунд (со временем запуска и т. Д.), Я пытался использовать MonitoredSession() с хуком StopAfterNEvals(), но я не могу использовать feed_dict, потому что график завершен ко времени Я пытаюсь запустить ()

0 ответов

Другие вопросы по тегам