自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Docker部署機(jī)器學(xué)習(xí)模型分步指南

譯文 精選
人工智能 機(jī)器學(xué)習(xí)
你是否厭倦了修復(fù)同樣的部署問題?不妨了解Docker如何使你的機(jī)器學(xué)習(xí)模型每次都能順暢運(yùn)行。

譯者 | 布加迪

審校 | 重樓

部署機(jī)器學(xué)習(xí)模型與開發(fā)一樣重要,特別是在確保不同環(huán)境之間的一致性時(shí)。軟件版本或配置方面的變化/差異可能導(dǎo)致不一致的行為或意外錯(cuò)誤。Docker將應(yīng)用程序連同其依賴項(xiàng)封裝到一個(gè)容器中,以確保它在任何地方都能一樣正常運(yùn)行。它可以簡(jiǎn)化部署過(guò)程,并盡可能減少錯(cuò)誤。

Docker簡(jiǎn)述

Docker是一開源平臺(tái),它使開發(fā)人員能夠?qū)?yīng)用程序連同其依賴項(xiàng)打包到一個(gè)容器中。這個(gè)容器是輕量級(jí)便攜盒子,封裝了應(yīng)用程序運(yùn)行所需的所有必要內(nèi)容(比如代碼、庫(kù)和設(shè)置。容器應(yīng)用程序操作系統(tǒng)或配置方面的差異隔離開來(lái),從而確保應(yīng)用程序在各種環(huán)境中一致地運(yùn)行。此外,利用Docker可以簡(jiǎn)化團(tuán)隊(duì)成員之間的協(xié)作,便于從開發(fā)環(huán)境更平滑地過(guò)渡到生產(chǎn)環(huán)境。

部署機(jī)器學(xué)習(xí)模型分步指南

不妨看看如何使用Docker部署機(jī)器學(xué)習(xí)模型。

1. 搭建環(huán)境

開始之前,確保你已經(jīng)在系統(tǒng)上安裝了Docker。你可以從Docker官方網(wǎng)站下載

2. 構(gòu)建機(jī)器學(xué)習(xí)模型

你需要準(zhǔn)備好部署一個(gè)經(jīng)過(guò)訓(xùn)練的機(jī)器學(xué)習(xí)模型。在本教程中,我們使用scikit-learnPython舉一個(gè)簡(jiǎn)單的示例。

model.py:

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pickle

# Train and save the model
def train_model():
 # Load dataset
 data = load_iris()
 X, y = data.data, data.target

 # Train model
 model = RandomForestClassifier()
 model.fit(X, y)

 # Save the trained model
 with open('model.pkl', 'wb') as f:
 pickle.dump(model, f)
 print("Model trained and saved as model.pkl")

# Load model and make a prediction using predefined test data
def predict():
 # Load the saved model
 with open('model.pkl', 'rb') as f:
 model = pickle.load(f)

 # Test data (sample input for prediction)
 test_data = [5.1, 3.5, 1.4, 0.2] # Example features
 prediction = model.predict([test_data])

 print(f"Prediction for {test_data}: {int(prediction[0])}")

if __name__ == '__main__':
 train_model()
 predict()

上面的例在一個(gè)腳本中結(jié)合了模型訓(xùn)練、保存和預(yù)測(cè)。train_model()函數(shù)使用Iris數(shù)據(jù)集訓(xùn)練一個(gè)簡(jiǎn)單模型,并將其保存為model.pkl。predict()函數(shù)加載保存的模型,并使用預(yù)定義的測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè)。

3. 創(chuàng)建requirements.txt文件

文件中列出你的應(yīng)用程序需要的所有Python依賴項(xiàng)。在本例中

requirements.txt:

scikit-learn

4. 創(chuàng)建Dockerfile

Dockerfile是一個(gè)腳本,含用于構(gòu)建Docker鏡像一系列指令。

下面是我們應(yīng)用程序的簡(jiǎn)單Dockerfile。確保Dockerfile創(chuàng)建時(shí)沒有擴(kuò)展名,因?yàn)樗试SDocker在構(gòu)建鏡像時(shí)不需要任何額外的參數(shù)就能識(shí)別它。

Dockerfile:

# Use a base image with Python
FROM python:3.11-slim

# Set the working directory in the container
WORKDIR /app

# Copy the necessary files into the container
COPY requirements.txt requirements.txt
COPY model.py model.py

# Install the required Python libraries
RUN pip install -r requirements.txt

# Run the Python script when the container starts
CMD ["python", "model.py"]

現(xiàn)在不妨了解Dockerfile中每個(gè)關(guān)鍵字的含義。

  • FROM指定Dockerfile的基本鏡像。我們在本例中使用Python 3.11-slim。
  • WORKDIR將工作目錄設(shè)置為定的路徑。此后,所有命令將相對(duì)該目錄加以執(zhí)行。
  • COPY這個(gè)命令將內(nèi)容從本地機(jī)器復(fù)制到Docker容器。這里,它復(fù)制了requirements.txt和model.py文件。
  • RUN是鏡像的環(huán)境中shell內(nèi)執(zhí)行命令。這里,它在安裝requirements.txt文件中列出所有項(xiàng)目依賴項(xiàng)。
  • CMD該命令指定容器啟動(dòng)時(shí)運(yùn)行的默認(rèn)命令。在本例中,它使用Python運(yùn)行model.py腳本。

5. 構(gòu)建Docker鏡像

打開命令提示或終端,進(jìn)入到Dockerfile所在的工作目錄,然后運(yùn)行以下命令

docker build -t ml-model

這個(gè)命令使用當(dāng)前目錄構(gòu)建一個(gè)名為ml-model的Docker鏡像。

6. 運(yùn)行Docker容器

一旦構(gòu)建了Docker鏡像,我們終于準(zhǔn)備好運(yùn)行容器。運(yùn)行如下命令

docker run ml-model

輸出如下

Model trained and saved as model.pkl
Prediction for [5.1, 3.5, 1.4, 0.2]: 0

7. 標(biāo)記容器,并將容器推送到DockerHub

Docker Hub是Docker鏡像的存儲(chǔ)庫(kù),方便用戶在團(tuán)隊(duì)或生產(chǎn)環(huán)境之間共享、版本控制和分發(fā)容器。

在Docker Hub上創(chuàng)建一個(gè)帳戶。創(chuàng)建完畢后,運(yùn)行以下命令通過(guò)終端登錄帳戶

docker login

你必須用用戶名標(biāo)記Docker鏡像,以便它知道將鏡像推送到哪里。替換你的用戶名,執(zhí)行以下命令

docker tag ml-model yourdockerhubusername/ml-model

一旦鏡像已標(biāo)記完畢,你就可以使用以下命令將鏡像推送到Docker Hub。

docker push yourdockerhubusername/ml-model

現(xiàn)在誰(shuí)都可以拉并運(yùn)行你的Docker鏡像了,只需運(yùn)行以下命令:

docker pull yourdockerhubusername/ml-model
docker run yourdockerhubusername/ml-model

結(jié)論

使用Docker部署機(jī)器學(xué)習(xí)模型保證跨不同平臺(tái)擁有一致環(huán)境和依賴項(xiàng),從而使部署過(guò)程更順暢、更具可擴(kuò)展性。本教程探討了使用Docker構(gòu)建、包和部署機(jī)器學(xué)習(xí)模型的步驟,強(qiáng)調(diào)了其簡(jiǎn)單性。

有了Docker,模型部署來(lái)得更直接簡(jiǎn)單,從而不需要搭建復(fù)雜環(huán)境。

原文標(biāo)題Step-by-Step Guide to Deploying ML Models with Docker,作者:Kanwal Mehreen

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2024-09-09 11:45:15

ONNX部署模型

2023-02-07 16:36:34

機(jī)器學(xué)習(xí)Docker無(wú)服務(wù)器

2019-10-23 08:00:00

Flask機(jī)器學(xué)習(xí)人工智能

2024-02-20 15:17:35

機(jī)器學(xué)習(xí)模型部署

2021-01-25 09:00:00

機(jī)器學(xué)習(xí)人工智能算法

2022-09-07 08:00:00

機(jī)器學(xué)習(xí)MLFlow工具

2020-07-10 10:39:04

Python開發(fā)工具

2021-11-02 09:40:50

TensorFlow機(jī)器學(xué)習(xí)人工智能

2017-07-07 14:41:13

機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)JavaScript

2018-11-07 09:00:00

機(jī)器學(xué)習(xí)模型Amazon Sage

2023-12-05 15:44:46

計(jì)算機(jī)視覺FastAPI

2011-11-18 10:14:50

云計(jì)算

2023-08-02 09:59:51

2019-01-23 11:12:42

機(jī)器學(xué)習(xí)機(jī)器模型預(yù)測(cè)工資

2025-02-17 08:00:00

機(jī)器學(xué)習(xí)開發(fā)Docker

2023-02-24 15:10:46

機(jī)器學(xué)習(xí)數(shù)據(jù)集

2025-03-04 08:00:00

機(jī)器學(xué)習(xí)Rust開發(fā)

2022-03-28 18:59:02

DockerFlask深度學(xué)習(xí)

2020-01-02 14:13:01

機(jī)器學(xué)習(xí)模型部署預(yù)測(cè)

2022-12-21 19:06:55

機(jī)器學(xué)習(xí)人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)