Получение KeyError в Klepto при использовании с локального компьютера

Я хочу сохранить мою модель машинного обучения на моем локальном компьютере. Я выполнил /questions/32990359/sohranenie-i-redaktirovanie-python-s-pomoschyu-klepto/32990371#32990371 этот ответ, чтобы сохранить модель ML на локальном компьютере, но когда я загружаю постоянную модель ML с локального компьютера, я получаю ключевую ошибку.

Я создал модель ML, которая предсказывает категорию URL. Теперь я хочу интегрировать модель машинного обучения в свое веб-приложение, поэтому я создал API с помощью Flask.

Я протестировал свою модель машинного обучения в блокноте jupyter, где теперь у меня есть код, связанный с моделью машинного обучения, я просто хочу сбросить свою модель машинного обучения и использовать ее в своем API. В блокноте jupyter я получаю правильный вывод, но когда я загружаю сохраненный файл в свой код API, я получаю Key Error. Я пробовал использовать pickle, joblib, но там я получаю MemoryError, я тоже пытался решить эту проблему, но мне не удалось решить эту проблему, поэтому я пытаюсь Klepto.

Клепто код

from klepto.archives import dir_archive

model = dir_archive('E:/Mayur/Sem 5/Python project/model_klepto',{'result':gs_clf},serialized=True, cached=False)
#gs_clf = gs_clf.fit(x_train, y_train) #RandomizedSearchCV
model.dump()

Код API

import numpy as np
from flask import Flask, request, jsonify, render_template
from klepto.archives import dir_archive

app = Flask(__name__)

demo = dir_archive(
    'E:/Mayur/Sem 5/Python project/model_klepto', {}, serialized=True, cached=False)
demo.load()


@app.route('/')
def home():
    return render_template('index.html')


@app.route('/predict', methods=['POST'])
def predict():
    input = request.form.values()
    final_feature = [np.array(input)]
    prediction = demo['result'].predict([str(final_feature)])

    return render_template('index.html', prediction_text=prediction)


if __name__ == "__main__":
    app.run(debug=True)

Когда я запускаю API, я получаю KeyError: "результат".

Если я запустил код ниже в блокноте jupyter, я получаю правильный результат

demo = dir_archive(
    'E:/Mayur/Sem 5/Python project/model_klepto', {}, serialized=True, cached=False)
demo.load()
demo

Выход>

ir_archive('model_klepto', {'result': RandomizedSearchCV(cv='warn', error_score='raise-deprecating',
                   estimator=Pipeline(memory=None,
                                      steps=[('vect',
                                              CountVectorizer(analyzer='word',
                                                              binary=False,
                                                              decode_error='strict',
                                                              dtype=<class 'numpy.int64'>,
                                                              encoding='utf-8',
                                                              input='content',
                                                              lowercase=True,
                                                              max_df=1.0,
                                                              max_features=None,
                                                              min_df=1,
                                                              ngram_range=(1,
                                                                           1),
                                                              preprocessor=None,
                                                              stop_words=None,
                                                              strip_accen...
                                                               sublinear_tf=False,
                                                               use_idf=True)),
                                             ('clf',
                                              MultinomialNB(alpha=1.0,
                                                            class_prior=None,
                                                            fit_prior=True))],
                                      verbose=False),
                   iid='warn', n_iter=5, n_jobs=None,
                   param_distributions={'clf__alpha': (0.01, 0.001),
                                        'tfidf__use_idf': (True, False),
                                        'vect__ngram_range': [(1, 1), (1, 2)]},
                   pre_dispatch='2*n_jobs', random_state=None, refit=True,
                   return_train_score=False, scoring=None, verbose=0)}, cached=False)
demo['result'].predict(['http://www.windows.com'])

Вывод> array(['Компьютеры'], dtype=

Вот скриншот трассировки стека Трассировка стека

0 ответов

Другие вопросы по тегам