2
私は、RESTエンドポイントから呼び出され、画像のURLとして渡されるTensorflowのpythonクラスを持っています。新しい要求が開始されるたびに、ローカルの.pb
ファイルを読み取るcreate_graph
メソッドが呼び出されます。このファイルは要求から要求に変更されません。だから、私は、毎回のリクエストでこのファイルを読むのがリソースと時間を有効に活用していないと感じています。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