Оценивать начало в 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, потому что график завершен ко времени Я пытаюсь запустить ()