成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

害怕部署機器學習模型?這里有一篇手把手教程

新聞 機器學習
機器學習模型的部署可能會讓初學者感到害怕,甚至對那些有經驗的人來說也是如此。

 [[283211]]

照片由 Franck V 發布在 Unsplash 上

本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。

閱讀本文后,你將能夠部署機器學習模型,并用你想要的編程語言進行預測。沒錯,你可以堅持使用 Python,也可以通過 Java 或 Kotlin 直接在你的 Android 應用程序中進行預測。另外,你可以直接在你的 web 應用程序中使用該模型——你有很多很多選擇。為了簡單起見,我會用 Postman。

不過,我不會解釋如何將這個模型放到一個實時服務器上,因為選擇太多了。該模型將在你的本地主機上運行,因此,你將無法從不同的網絡訪問它(但請隨意使用 google 查詢如何將模型部署到 AWS 或類似的東西上)。

我已經做了以下目錄結構:

ML 部署:

  • model / Train.py

  • app.py

如果你已經通過 Anaconda 安裝了 Python,那么你可能已經預先安裝了所有庫,除了 Flask。因此,啟動終端并執行以下語句:

  1. pip install Flask 
  2. pip install Flask-RESTful 

進展是不是很順利?很好,現在讓我們來看看好東西。

制作基本預測腳本

如果您正在遵循目錄結構,那么現在應該打開 model/Train.py 文件。你先要加載虹膜數據集,并使用一個簡單的決策樹分類器來訓練模型。訓練完成后,我將使用 joblib 庫保存模型,并將精度分數報告給用戶。

這里并不復雜,因為機器學習不是本文的重點,這里只是模型部署。下面是整個腳本:

  1. from sklearn import datasets 
  2. from sklearn.tree import DecisionTreeClassifier 
  3. from sklearn.model_selection import train_test_split 
  4. from sklearn.metrics import accuracy_score 
  5. from sklearn.externals import joblib 
  6.  
  7. def train_model(): 
  8.    iris_df = datasets.load_iris() 
  9.  
  10.    x = iris_df.data 
  11.    y = iris_df.target 
  12.  
  13.    X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.25
  14.    dt = DecisionTreeClassifier().fit(X_train, y_train) 
  15.    preds = dt.predict(X_test) 
  16.  
  17.    accuracy = accuracy_score(y_test, preds) 
  18.    joblib.dump(dt, 'iris-model.model'
  19.    print('Model Training Finished.\n\tAccuracy obtained: {}'.format(accuracy)) 

部署

現在你可以打開 app.py 文件并執行一些導入操作。你需要操作系統模塊:Flask 和 Flask RESTful 中的一些東西,它們是 10 秒前創建的模型訓練腳本,你還要將它們和 joblib 加載到訓練模型中:

  1. import os 
  2. from flask import Flask, jsonify, request 
  3. from flask_restful import Api, Resource 
  4. from model.Train import train_model 
  5. from sklearn.externals import joblib  

現在你應該從 Flask RESTful 中創建 Flask 和 Api 的實例。沒什么復雜的:

  1. app = Flask(__name__) 
  2. api = Api(app) 

接下來要做的是檢查模型是否已經訓練好了。在 Train.py 中,你已經聲明該模型將保存在文件  iris-model.model 文件中,并且如果該文件不存在,則應該首先對模型進行訓練。訓練完成后,可以通過 joblib 加載:

  1. if not os.path.isfile('iris-model.model'): 
  2.    train_model() 
  3.  
  4. model = joblib.load('iris-model.model'

現在你需要聲明一個用于進行預測的類。Flask RESTful 使用此編碼約定,因此你的類將需要從 Flask RESTful 資源模塊繼承。在類中,可以聲明 get()、post()或任何其他處理數據的方法。

我們將使用 post(),因此數據不會直接通過 URL 傳遞。你需要從用戶輸入中獲取屬性(根據用戶輸入的屬性值進行預測)。然后,可以調用加載模型的 .predict()函數。僅僅因為這個數據集的目標變量的格式是(0,1,2)而不是('Iris-setosa','Iris versicolor','Iris virginica'),你還需要解決這個問題。最后,你可以返回預測的 JSON 表示: 

  1. class MakePrediction(Resource): 
  2.    @staticmethod 
  3.    def post(): 
  4.        posted_data = request.get_json() 
  5.        sepal_length = posted_data['sepal_length'
  6.        sepal_width = posted_data['sepal_width'
  7.        petal_length = posted_data['petal_length'
  8.        petal_width = posted_data['petal_width'
  9.  
  10.        prediction = model.predict([[sepal_length, sepal_width, petal_length, petal_width]])[0
  11.        if prediction == 0
  12.            predicted_class = 'Iris-setosa' 
  13.        elif prediction == 1
  14.            predicted_class = 'Iris-versicolor' 
  15.        else
  16.            predicted_class = 'Iris-virginica' 
  17.  
  18.        return jsonify({ 
  19.            'Prediction': predicted_class 
  20.        }) 

我們就快完成了,加油!你還需要聲明一個路由,URL 的一部分將用于處理請求:

  1. api.add_resource(MakePrediction, '/predict'

最后一件事是告訴 Python 去調試模式運行應用程序:

  1. if __name__ == '__main__'
  2.    app.run(debug=True) 

這樣做就對了。你可以通過 Postman 或其他工具啟動模型并進行預測。

為了防止你漏掉什么,這里是整個 app.py 文件,你可以參考:

  1. import os 
  2. from flask import Flask, jsonify, request 
  3. from flask_restful import Api, Resource 
  4. from model.Train import train_model 
  5. from sklearn.externals import joblib 
  6.  
  7. app = Flask(__name__) 
  8. api = Api(app) 
  9.  
  10. if not os.path.isfile('iris-model.model'): 
  11.    train_model() 
  12.  
  13. model = joblib.load('iris-model.model'
  14.  
  15. class MakePrediction(Resource): 
  16.    @staticmethod 
  17.    def post(): 
  18.        posted_data = request.get_json() 
  19.        sepal_length = posted_data['sepal_length'
  20.        sepal_width = posted_data['sepal_width'
  21.        petal_length = posted_data['petal_length'
  22.        petal_width = posted_data['petal_width'
  23.  
  24.        prediction = model.predict([[sepal_length, sepal_width, petal_length, petal_width]])[0
  25.        if prediction == 0
  26.            predicted_class = 'Iris-setosa' 
  27.        elif prediction == 1
  28.            predicted_class = 'Iris-versicolor' 
  29.        else
  30.            predicted_class = 'Iris-virginica' 
  31.  
  32.        return jsonify({ 
  33.            'Prediction': predicted_class 
  34.        }) 
  35.  
  36. api.add_resource(MakePrediction, '/predict'
  37.  
  38. if __name__ == '__main__'
  39.    app.run(debug=True) 

好的,你準備好了嗎?

不錯!導航到根目錄(app.py 就在根目錄中),啟動終端并執行以下操作: 

  1. python app.py 

大約一秒鐘后,你將得到一個輸出,顯示應用程序正在本地主機上運行。

現在我將打開 Postman 并執行以下操作:

  • 將方法更改為 POST

  • 輸入 localhost:5000/predict 作為 URL

  • 在 Body 選項卡中選擇 JSON

  • 輸入一些 JSON 進行預測

然后你可以點擊發送:

瞧!幾乎馬上你就能從你的模型中得到預測。

寫在最后

我希望你能看完這篇文章。如果你只是復制粘貼的所有內容,只要你安裝了所有必需的庫,那么應該就可以繼續。

我強烈建議你在自己的數據集和業務問題上利用這些新獲得的知識。如果你用 Python 以外的語言編寫應用程序,并且使用 Python 只是為了數據和機器學習相關的東西,那么它就很有用了。

via:http://t.cn/AirsMxVF  

責任編輯:張燕妮 來源: 雷鋒網
相關推薦

2020-03-09 14:42:40

人工智能機器學習技術

2023-11-21 08:00:20

AI模型

2020-02-17 15:05:28

機器學習人工智能計算機

2018-01-29 13:41:06

數據庫區塊鏈比特幣

2023-06-09 11:33:42

數據分析報告

2022-09-21 11:29:05

數據分析業務復盤

2018-02-25 19:02:45

Python機器學習算法

2017-10-18 09:48:13

深度學習TensorFlow入門篇

2016-04-27 09:49:16

用戶模型產品總結

2020-11-02 15:49:35

機器學習技術云計算

2017-02-09 18:50:42

深度學習機器計算機

2024-08-20 15:05:42

機器學習多任務多標簽模型

2020-11-27 07:38:43

MongoDB

2019-11-13 14:39:56

EdgeBoard

2022-08-04 10:39:23

Jenkins集成CD

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2025-05-07 00:31:30

2011-02-22 14:36:40

ASP.NETmsdnC#

2009-12-15 16:44:07

水星路由器設置教程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看中文字幕 | 精品一区二区三区av | 国产在线一区二区三区 | 91免费入口 | 久久久99精品免费观看 | 欧美一区二区久久 | 国产一级视频在线播放 | 成人黄色在线视频 | 香蕉久久久久久 | 久草视频在 | 91精品国产日韩91久久久久久 | 色久五月 | 中文精品视频 | 久久精品一区 | 自拍偷拍第一页 | 一级毛片色一级 | 国产精品区二区三区日本 | 国产成人一区二区三区电影 | 成人免费视频网站在线看 | 亚洲免费视频播放 | 中文字幕一区二区三区乱码在线 | 99精品视频在线 | 亚洲精品自在在线观看 | 日日日操 | 羞羞视频网站免费看 | 亚洲色图图片 | 99久久中文字幕三级久久日本 | 日韩一区二区在线视频 | 成人av网站在线观看 | 久久久精品久久久 | 日韩最新网站 | 人妖videosex高潮另类 | 精品欧美一区二区精品久久 | 国产一区二区毛片 | www.亚洲.com | 91精品国产综合久久精品 | 欧美国产日本一区 | 亚洲国产精品一区 | 久久精品欧美一区二区三区不卡 | 精品国产乱码久久久久久1区2区 | 久草免费视 |