Deploy một model ML sử dụng Flask

machine-learning

#1

Chào mọi người!

Em đang deploy một model ML sử dụng Flask theo mô hình Client-Server.

Trong hàm make_prediction em viết như sau:

Nhưng khi run thì bị lỗi cú pháp

Source code: https://bom.to/AMI74

  • Model ML (vd.py)
  • Demo dữ liệu train (vd.dat)
  • file Flask (main.py)

Rất mong mọi người chỉ giáo. Em cảm ơn.


#2

Bạn có thể chụp lại error log (tên lỗi, dòng code bị lỗi,…) được ko? Có đủ thông tin thì sẽ dễ debug hơn.


#3

Khi run thì code vẫn chạy bình thường

Sau khi bắt đầu nhập dữ liệu để training

Thì kết quả báo lỗi như sau:

[2019-10-28 21:09:36,576] ERROR in app: Exception on /predict [POST]
Traceback (most recent call last):
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask\app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask\app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "e:\pycharm\virtualenv\flask\lib\site-packages\flask_cors\decorator.py", line 128, in wrapped_function
    resp = make_response(f(*args, **kwargs))
  File "E:\Data\Python\Web Project\Websevice\main.py", line 144, in make_prediction
    Y_data = ratings.as_matrix()
AttributeError: 'NoneType' object has no attribute 'as_matrix'

#4

Bạn in xem ratings ra đi


#5

Nếu run trên Flask thì kết quả trên localhost báo lỗi: Internal Server Error

Còn nếu run model bình thường thì kết quả như sau:


#6

Data chưa chuyển về dạng numpy hoặc pandas nên mới báo: AttributeError: ‘NoneType’ object has no attribute ‘as_matrix’ Trước khi predict bạn nên dùng pandas convert data trước


#7

Bạn xem lại đã post được dữ liệu từ form ngoài view lên chưa. Bạn dùng request.args.get là để lấy dữ liệu trên url chứ ko phải từ form post lên.


#8

Ok, mình đã fix được rồi. Thank you


#9

Chào bạn. Mình cũng gặp lỗi như này. Cho mình hỏi bạn fix bằng cách nào được không ạ? Mình cảm ơn.


#10

Nguyên nhân là khi gửi request thì dữ liệu trong textbox chưa được gán vào biến data.

Bạn sửa dòng data = request.args.get[“data”] thành data = request.form[‘data’]