<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發(fā)者 正文
      發(fā)私信給skura
      發(fā)送

      0

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

      本文作者: skura 2019-11-20 11:10
      導語:機器學習模型的部署可能會讓初學者感到害怕,甚至對那些有經(jīng)驗的人來說也是如此。

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

      照片由 Franck V 發(fā)布在 Unsplash 上

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

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

      我已經(jīng)做了以下目錄結構:

      ML 部署:

      • model / Train.py

      • app.py

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

      pip install Flask
      pip install Flask-RESTful

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

      制作基本預測腳本

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

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

      from sklearn import datasets
      from sklearn.tree import DecisionTreeClassifier
      from sklearn.model_selection import train_test_split
      from sklearn.metrics import accuracy_score
      from sklearn.externals import joblib

      def train_model():
         iris_df = datasets.load_iris()

         x = iris_df.data
         y = iris_df.target

         X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
         dt = DecisionTreeClassifier().fit(X_train, y_train)
         preds = dt.predict(X_test)

         accuracy = accuracy_score(y_test, preds)
         joblib.dump(dt, 'iris-model.model')
         print('Model Training Finished.\n\tAccuracy obtained: {}'.format(accuracy))

      部署

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

      import os
      from flask import Flask, jsonify, request
      from flask_restful import Api, Resource
      from model.Train import train_model
      from sklearn.externals import joblib

      現(xiàn)在你應該從 Flask RESTful 中創(chuàng)建 Flask 和 Api 的實例。沒什么復雜的:

      app = Flask(__name__)
      api = Api(app)

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

      if not os.path.isfile('iris-model.model'):
         train_model()

      model = joblib.load('iris-model.model')

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

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

      class MakePrediction(Resource):
         @staticmethod
         def post():
             posted_data = request.get_json()
             sepal_length = posted_data['sepal_length']
             sepal_width = posted_data['sepal_width']
             petal_length = posted_data['petal_length']
             petal_width = posted_data['petal_width']

             prediction = model.predict([[sepal_length, sepal_width, petal_length, petal_width]])[0]
             if prediction == 0:
                 predicted_class = 'Iris-setosa'
             elif prediction == 1:
                 predicted_class = 'Iris-versicolor'
             else:
                 predicted_class = 'Iris-virginica'

             return jsonify({
                 'Prediction': predicted_class
             })

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

      api.add_resource(MakePrediction, '/predict')

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

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

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

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

      import os
      from flask import Flask, jsonify, request
      from flask_restful import Api, Resource
      from model.Train import train_model
      from sklearn.externals import joblib

      app = Flask(__name__)
      api = Api(app)

      if not os.path.isfile('iris-model.model'):
         train_model()

      model = joblib.load('iris-model.model')

      class MakePrediction(Resource):
         @staticmethod
         def post():
             posted_data = request.get_json()
             sepal_length = posted_data['sepal_length']
             sepal_width = posted_data['sepal_width']
             petal_length = posted_data['petal_length']
             petal_width = posted_data['petal_width']

             prediction = model.predict([[sepal_length, sepal_width, petal_length, petal_width]])[0]
             if prediction == 0:
                 predicted_class = 'Iris-setosa'
             elif prediction == 1:
                 predicted_class = 'Iris-versicolor'
             else:
                 predicted_class = 'Iris-virginica'

             return jsonify({
                 'Prediction': predicted_class
             })

      api.add_resource(MakePrediction, '/predict')

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

      好的,你準備好了嗎?

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

      python app.py

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

      現(xiàn)在我將打開 Postman 并執(zhí)行以下操作:

      • 將方法更改為 POST

      • 輸入 localhost:5000/predict 作為 URL

      • 在 Body 選項卡中選擇 JSON

      • 輸入一些 JSON 進行預測

      然后你可以點擊發(fā)送:

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

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

      寫在最后

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

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

      via:http://t.cn/AirsMxVF 

      雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉載。詳情見轉載須知

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

      分享:
      相關文章
      當月熱門文章
      最新文章
      請?zhí)顚懮暾埲速Y料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 中文字幕精品av一区二区五区| 亚洲色成人网站www永久男男| 伊人激情av一区二区三区| 日本不卡一区二区三区| 国产精品户外野外| 嫩草院一区二区三区无码| 国产丝袜在线播放| 18禁美女裸身无遮挡免费网站| 亚洲欧美中文字幕| 中国亚州女人69内射少妇| 久久伊人色AV天堂九九小黄鸭| 日本高清不卡aⅴ免费网站| 赣州市| 久久精品国产99精品亚洲| 成人AV天堂| 永久黄网站色视频免费直播| 狠狠躁日日躁夜夜躁欧美老妇| 野花香社区在线视频观看播放| 人妻熟人中文字幕一区二区 | 日本熟妇XXXX潮喷视频| 两根大肉大捧一进一出好爽视频| 国产精品视频流白浆免费视频| 97人洗澡人人澡人人爽人人模| 云林县| 激情无码人妻又粗又大| 日本黄色免费| 亚洲A∨无码| 国产?成人?无码| jizz日韩| 国产精品久久久久久福利69堂| 最新国产在线拍揄自揄视频| 亚洲成人在线电影| 日韩在线一区二区三区免费视频| 亚洲 欧美 影音先锋| 亚洲第一av网站| 极品人妻被黑人中出种子| 无码国产精成人午夜视频不卡 | 国产色a在线观看| 老司机免费视频| 乌拉特中旗| 少妇一区二区三区久久久|