【问题标题】:not able to read a saved machine learning model in flask on a remote Ubuntu server无法读取远程 Ubuntu 服务器上烧瓶中保存的机器学习模型
【发布时间】:2018-12-15 17:11:36
【问题描述】:

我已将机器学习模型保存为“finalized_model.sav”,我在烧瓶应用程序上使用它。当我在本地桌面上运行以下代码行时,它运行良好,但在远程 Ubuntu 服务器上运行相同的代码会出错:

@app.route('/studentData/', methods=['POST'])
def parsing_data():
    try:
        jsonData = request.get_json(force=True)
        data = json.loads(jsonData)  
        requiredData = data['statement']

        filename = 'finalized_model.sav'
        loaded_model = pickle.load(open(filename, 'rb'))
        count_vect = pickle.load(open('count_vect', 'rb'))
        result = loaded_model.predict(count_vect.transform([requiredData]))
        out = {"studentId": str(result)}
        return json.dumps(out)
    except:
        return "invalid data"

我想知道问题可能出在哪里,似乎问题在于加载“finalized_model.sav”,尽管我已将所有文件保存在我的烧瓶应用程序所在的同一目录中(init .py) 存在

【问题讨论】:

  • 错误信息是什么?
  • 没有错误信息,我检查了日志文件。注释行 loaded_model = pickle.load(open(filename, 'rb')) 使其运行并取消注释,使其转到 except: block
  • 已经解决scikit-learn没有安装在服务器上,日志文件没有错误,也有路径错误

标签: python ubuntu machine-learning flask scikit-learn


【解决方案1】:

首先,改变

filename = 'finalized_model.sav' 

到

filename = './finalized_model.sav'

如果这仍然不起作用,请使用完整路径名

import os
filename = os.path.abspath(__file__) + os.sep + 'finalized_model.sav'

【讨论】:

    猜你喜欢
    • 2020-09-12
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    相关资源
    最近更新 更多