У меня есть класс python Tensorflow, который вызывается из конечной точки REST и передается в URL-адресе для изображения. Каждый раз, когда инициируется новый запрос, он вызывает метод create_graph
, который считывает локальный файл .pb
. Этот файл не изменяется от запроса к запросу. Поэтому я считаю, что не рекомендуется использовать ресурсы и время для чтения этого файла по каждому запросу.Как избежать чтения графика для каждого запроса в Tensorflow
код ниже:
import numpy as np
import tensorflow as tf
import urllib2
class MyTensorflow:
def __init__(self, url):
self.imageUrl = imageUrl
def create_graph(self):
with tf.gfile.FastGFile("/path/to/model.pb", 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
_ = tf.import_graph_def(graph_def, name='')
def run_inference_on_image(self):
image_string = urllib2.urlopen(self.imageUrl).read()
with tf.Session() as sess:
...
...
return a_text_value
Приведенный выше код вызывается из flask_restful
так:
c = my_tensorflow.MyTensorflow(args['url'])
c.create_graph()
returned = c.run_inference_on_image()
Вопрос
Есть ли способ, чтобы вызвать только create_graph
на первый запрос, а затем не вызывать его до перезапуска службы?
'before_first_request (f)' Регистрирует функцию, которая должна быть запущена до первого запроса к этому экземпляру приложения. Что насчет этого? – metmirr