как починить приложение машинного обучения фляге, которое отсчитывает время на героку? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть приложение фляги, которое должно делать предсказания при вводе пользователем, после того, как оно принимает ввод, оно использует предварительно загруженную модель lstm уровня символов для генерации 1000 символов.Что я делаю, так это итерацию 1000 раз и прогнозирование каждого ввода с предварительно загруженной моделью, а затем отображение прогноза в строку.

Проблема в том, что этот процесс занимает больше 30 секунд, поэтому heroku выдает ошибку тайм-аута, есть ли способ решить эту проблему?Я читал о фоновых процессах, но страница не может двигаться вперед, пока не будут сделаны прогнозы, поэтому я не уверен, что здесь делать.Я предоставлю код, который я делаю, чтобы делать прогнозы ниже

    pattern = []
    for char in input_words:
        try:
            pattern.append(self.char_to_int[char])
        except:
            pattern.append(0)
    output = ''
    #print(pattern)
    start = time.time()
    for i in range(1000):
        x = np.reshape(pattern, (1, len(pattern), 1))
        x = x / float(n_vocab)
        prediction = m.predict(x, verbose=0)
        m._make_predict_function()
        index = sample(prediction)
        result = int_to_char[index]
        output = output+result

        pattern.append(index)
        pattern = pattern[1:len(pattern)]

        pattern.append(index)
        pattern = pattern[1:len(pattern)]

1 Ответ

0 голосов
/ 18 июня 2019

Вы можете создать фоновый процесс (multiprocessing.Process f.e), выполняющий все итерации в фоновом режиме. Как только прогноз закончен, вы сохраняете его в переменной или базе данных.

Во время работы фонового процесса вы можете периодически получать маршрут вашего приложения, возвращая результаты или информацию о том, что результаты вычисляются.

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