Как можно решить проблему «Память не может быть переработана» в моей сборке веб-службы с помощью tenorflow + flask - PullRequest
0 голосов
/ 06 июня 2019

Я создаю приложение-колбу с facenet, из-за какой-то ситуации я не смог использовать тензор потока, служащий для загрузки моей модели, и память увеличивалась после каждого запроса.

import numpy as np
from flask import Flask, request
import tensorflow as tf

from tensorflow.python.platform import gfile
from app.utils.log_util import LogUtils
log = LogUtils.get_stream_logger(__name__)

app = Flask(__name__)

with gfile.FastGFile('../20190517-152605.pb', 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())

graph = tf.Graph()
with graph.as_default():
    tf.import_graph_def(graph_def, input_map=None, name='')
    # print(tf.get_default_graph().as_graph_def().node)
    images_placeholder = tf.get_default_graph().get_tensor_by_name("input:0")
    embeddings = tf.get_default_graph().get_tensor_by_name("embeddings:0")
    phase_train_placeholder = tf.get_default_graph().get_tensor_by_name("phase_train:0")
    model = {
        'images_placeholder': images_placeholder,
        'embeddings': embeddings,
        'phase_train_placeholder': phase_train_placeholder
    }

sess = tf.Session(graph=graph)

@app.route('/', methods=['POST'])
def classify():
    log.info('ss')
    # data = request.files.get('data').read()
    face = np.load("test.npy")
    images_placeholder = model['images_placeholder']
    embeddings = model['embeddings']
    phase_train_placeholder = model['phase_train_placeholder']
    result = sess.run(embeddings, feed_dict={images_placeholder: face, phase_train_placeholder: False})
    print(result)
    return str(200)

app.run

Ситуация увеличения памяти: запросраз: | 1 |2 | 4 ... | 100 ... n памяти: | 400 + МБ | 600 + МБ |700 МБ ... | 2 ГБ ... 2 ГБ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...