উদাহরণসহ Deployment প্রক্রিয়া

ONNX এবং Deployment - ওএনএনএক্স (ONNX) - Latest Technologies

232

মেশিন লার্নিং মডেলের ডিপ্লয়মেন্ট প্রক্রিয়া হল মডেলটিকে একটি উৎপাদন পরিবেশে নিয়ে যাওয়া, যেখানে এটি নতুন ডেটার উপর পূর্বাভাস দিতে সক্ষম হয়। এখানে আমি একটি উদাহরণ সহ দেখাবো কিভাবে একটি পাইটর্চ মডেলকে Flask ব্যবহার করে একটি ওয়েব অ্যাপে ডিপ্লয় করা যায়।

উদাহরণ: Flask ব্যবহার করে মডেল ডিপ্লয়মেন্ট

ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা

প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে প্রয়োজনীয় লাইব্রেরি ইনস্টল করা আছে। নিচের কমান্ডগুলি চালান:

pip install Flask torch torchvision

ধাপ ২: মডেল তৈরি এবং প্রশিক্ষণ দেওয়া

এখন একটি সাধারণ পাইটর্চ মডেল তৈরি করুন এবং এটি প্রশিক্ষণ দিন। উদাহরণস্বরূপ, আমরা একটি সিম্পল নিউরাল নেটওয়ার্ক মডেল তৈরি করবো।

import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np

# একটি সাধারণ নিউরাল নেটওয়ার্ক মডেল তৈরি করা
class SimpleNN(nn.Module):
    def __init__(self):
        super(SimpleNN, self).__init__()
        self.fc1 = nn.Linear(10, 5)  # ইনপুট সাইজ 10, আউটপুট সাইজ 5
        self.fc2 = nn.Linear(5, 1)    # ইনপুট সাইজ 5, আউটপুট সাইজ 1

    def forward(self, x):
        x = torch.relu(self.fc1(x))  # ReLU অ্যাক্টিভেশন ফাংশন
        return self.fc2(x)            # আউটপুট লেয়ার

# মডেল তৈরি
model = SimpleNN()

# প্যাটার্ন ইনপুট
dummy_input = torch.randn(1, 10)

# মডেল প্রশিক্ষণ (যদি প্রয়োজন হয়)
# এখানে আপনি আপনার প্রশিক্ষণ কোড রাখতে পারেন

# মডেল সংরক্ষণ
model_path = 'simple_nn_model.pth'
torch.save(model.state_dict(), model_path)

ধাপ ৩: Flask অ্যাপ তৈরি করা

এখন একটি Flask অ্যাপ তৈরি করুন যা মডেলটি ইনফারেন্স করার জন্য ব্যবহার করবে। একটি নতুন ফাইল তৈরি করুন, যেমন app.py:

from flask import Flask, request, jsonify
import torch
import torch.nn as nn

# Flask অ্যাপ তৈরি করা
app = Flask(__name__)

# মডেল সংজ্ঞায়িত করা
class SimpleNN(nn.Module):
    def __init__(self):
        super(SimpleNN, self).__init__()
        self.fc1 = nn.Linear(10, 5)
        self.fc2 = nn.Linear(5, 1)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        return self.fc2(x)

# মডেল লোড করা
model = SimpleNN()
model.load_state_dict(torch.load('simple_nn_model.pth'))
model.eval()  # মডেলকে ইনফারেন্স মোডে নিয়ে আসা

@app.route('/predict', methods=['POST'])
def predict():
    data = request.json
    input_tensor = torch.tensor(data['input'], dtype=torch.float32)
    with torch.no_grad():
        prediction = model(input_tensor).numpy()
    return jsonify(prediction=prediction.tolist())

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

ধাপ ৪: Flask অ্যাপ চালানো

এখন Flask অ্যাপটি চালান:

python app.py

ধাপ ৫: ইনফারেন্স করা

আপনার ব্রাউজারে বা Postman ব্যবহার করে POST অনুরোধ পাঠান।

curl -X POST http://127.0.0.1:5000/predict -H "Content-Type: application/json" -d '{"input": [0.5, 0.3, -0.2, 0.1, 0.2, -0.1, 0.0, 0.3, 0.2, -0.5]}'

ফলাফল

আপনার Flask অ্যাপ থেকে একটি JSON রেসপন্স আসবে, যা মডেল দ্বারা তৈরি পূর্বাভাস দেখাবে।

উপসংহার

এই উদাহরণটি দেখায় কিভাবে একটি PyTorch মডেলকে Flask ব্যবহার করে একটি ওয়েব অ্যাপে ডিপ্লয় করা যায়। মডেলটি নতুন ইনপুটের উপর পূর্বাভাস দিতে সক্ষম হবে, যা উৎপাদন পরিবেশে ব্যবহারের জন্য প্রস্তুত। 

Promotion

Are you sure to start over?

Loading...