Я пытаюсь развернуть простую модель машинного обучения онлайн, чтобы другие могли легко получить к ней доступ онлайн. Я попытался развернуть его локально на LocalHost, и он работает хорошо. Итак, сейчас я пытаюсь развернуть его как веб-приложение с помощью gcloud.
Я успешно следовал этому https://www.freecodecamp.org/news/how-to-build-a-web-application-using-flask-and-deploy-it-to-the-cloud-3551c985e492/, хотя это не модель ML.
это вид на мой каталог проектов! (пожалуйста, нажмите для просмотра) (https://drive.google.com/open?id=1AvbZ4ERRsiS19exGPgOm8LfVjk_GWjM8)
Я использую Mac, поэтому мой python 2.7, но, поскольку я использую Jupyter Notebook, я тоже на Python 3.7. Я разрабатываю свои вещи в основном на Notebookчерез Анаконду.
Это main.py:
import numpy as np
from flask import Flask, request, jsonify, render_template
import pickle
app = Flask(__name__)
model = pickle.load(open('model.pkl', 'rb'))
@app.route('/')
def home():
return render_template('index.html')
@app.route('/predict',methods=['POST'])
def predict():
int_features = [int(x) for x in request.form.values()]
final_features = [np.array(int_features)]
prediction = model.predict(final_features)
output = round(prediction[0], 2)
return render_template('index.html', prediction_text='The Forecast is {}'.format(output))
@app.route('/results',methods=['POST'])
def results():
data = request.get_json(force=True)
prediction = model.predict([np.array(list(data.values()))])
output = prediction[0]
return jsonify(output)
if __name__ == "__main__":
app.run(debug=True)
Это мой app.yml:
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /static
static_dir: static
- url: /.*
script: main.app
libraries:
- name: ssl
version: latest
Мой appengine_conengine.py:
from google.appengine.ext import vendor
vendor.add('lib')
Это мое требование. Txt
Flask
Werkzeug
numpy
sklearn
Затем я запускаю это:
pip install -t lib -r requirements.txt
, чтобы поместить 4 необходимые библиотеки в папку с именем "lib". это потому, что когда я тестирую запуск файла main.py в Virtualenv, ему требуется Flask, numpy и sklearn для успешного развертывания на Localhost: 5000.
Однако, когда я запускаю:
gcloud app deploy
чтобы загрузить и развернуть мой проект в gcloud, он говорит об ошибке примерно так:
1, in <module>
import numpy as np
File "/base/data/home/apps/n~sales-forecast-3mv3/20191110t154452.422348864415547477/lib/numpy/__init__.py", line 142, in <module>
from . import core
File "/base/data/home/apps/n~sales-forecast-3mv3/20191110t154452.422348864415547477/lib/numpy/core/__init__.py", line 47, in <module>
raise ImportError(msg)
ImportError:
Importing the numpy c-extensions failed.
- Try uninstalling and reinstalling numpy.
- If you have already done that, then:
1. Check that you expected to use Python2.7 from "/base/alloc/tmpfs/dynamic_runtimes/python27g/79cfdbb680326abd/python27/python27_dist/python",
and that you have no directories in your PATH or PYTHONPATH that can
interfere with the Python and numpy version "1.17.3" you're trying to use.
2. If (1) looks fine, you can open a new issue at
https://github.com/numpy/numpy/issues. Please include details on:
- how you installed Python
- how you installed numpy
- your operating system
- whether or not you have multiple versions of Python installed
- if you built from source, your compiler versions and ideally a build log
- If you're working with a numpy git repository, try `git clean -xdf`
(removes all files not under version control) and rebuild numpy.
Кто-нибудь, пожалуйста, помогите? Большое спасибо.