tensorflowをdjangoで用いる際に、一度構築、ロードしたモデルをアプリ起動中にずっと使えるようにしたいです。
django中でtensorflowを使っているwebアプリケーションを作っているのですが、入力されてきたデータに対して学習済みモデルがforward処理を実行をするとき、毎回モデルの構築と学習済みパラメータのロードを行なっているため、処理に時間がかかってしまいます。可能ならば、アプリケーションが立ち上がった時にモデルの構築と学習済みパラメータのロードを行い、forward処理を実行する時に毎回モデル構築を行わないようにしたいです。下に私の簡易的なコードを記述します。ちなみに、djangoのviews.pyで自分で定義した処理を行う関数をimportしています。
views.py
from main import main #it is the function that deal the image data
class Example(Formview):
def form_valid(self, form):
image = form.data
output = main(image)
return JsonResponse(output)
main.py
def main(input):
with tf.Graph().as_default():
with tf.Session() as sess:
# load model and parameters
net.load_model(model)
# deal the image data
output = net(input)
return output