GAN দিয়ে Image Generation প্রজেক্ট

বাস্তব উদাহরণ এবং প্রজেক্ট ডেমো - থিয়ানো (Theano) - Machine Learning

339

Model Deployment এবং API Integration হল ডিপ লার্নিং মডেল বা মেশিন লার্নিং মডেলকে প্রোডাকশন এনভায়রনমেন্টে নিয়ে আসার প্রক্রিয়া। এই প্রক্রিয়া সফলভাবে সম্পন্ন হলে, মডেলটি অন্য অ্যাপ্লিকেশন বা ব্যবহারকারীদের সাথে ইন্টারঅ্যাক্ট করতে পারে। এখানে একটি পূর্ণাঙ্গ Model Deployment এবং API Integration এর উদাহরণ দেওয়া হলো যেখানে Flask ব্যবহার করে একটি TensorFlow মডেল ডিপ্লয় এবং API ইন্টিগ্রেশন করা হয়েছে।


Model Deployment এবং API Integration উদাহরণ:

আমরা এখানে একটি সিম্পল TensorFlow/Keras মডেল তৈরি করব, সেটিকে Flask API মাধ্যমে সার্ভ করব, এবং শেষে সেই API টির সাথে Frontend Application (যেমন React) ইন্টিগ্রেট করব।


ধাপ ১: মডেল তৈরি এবং সংরক্ষণ (Save Model)

প্রথমে একটি সহজ TensorFlow মডেল তৈরি করি এবং তা সংরক্ষণ করব। এই মডেলটি একটি Binary Classification মডেল হবে।

import tensorflow as tf
import numpy as np

# সিম্পল ডেটা তৈরি
X_train = np.random.rand(100, 10)  # 100 উদাহরণ, 10 ফিচার
y_train = np.random.randint(2, size=100)  # 100 টার্গেট লেবেল (0 অথবা 1)

# মডেল তৈরি
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_dim=10),
    tf.keras.layers.Dense(1, activation='sigmoid')
])

# মডেল কম্পাইল
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=10)

# মডেল সংরক্ষণ
model.save('my_model.h5')

এখন আপনার my_model.h5 নামের মডেলটি সংরক্ষিত আছে।


ধাপ ২: Flask API তৈরি এবং মডেল সার্ভিং

এখন আমরা Flask ব্যবহার করে একটি API তৈরি করব যা এই মডেলটিকে ব্যবহার করবে।

Flask API তৈরি:

  1. Flask ইনস্টল করা: প্রথমে Flask ইনস্টল করতে হবে:

    pip install Flask tensorflow
    
  2. Flask API কোড: Flask ব্যবহার করে মডেলটি API মাধ্যমে এক্সপোজ করার কোড:
from flask import Flask, request, jsonify
import tensorflow as tf
import numpy as np

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

# মডেল লোড করা
model = tf.keras.models.load_model('my_model.h5')

# /predict রুটে POST রিকোয়েস্ট গ্রহণ করা
@app.route('/predict', methods=['POST'])
def predict():
    try:
        # JSON ডেটা থেকে ইনপুট নেয়া
        data = request.get_json(force=True)
        
        # ইনপুট থেকে ফিচার তৈরি করা (এই ক্ষেত্রে 10 ফিচারের জন্য)
        input_data = np.array(data['input']).reshape(1, -1)
        
        # প্রেডিকশন করা
        prediction = model.predict(input_data)
        
        # আউটপুট রিটার্ন করা
        return jsonify({'prediction': prediction[0][0]})
    
    except Exception as e:
        return jsonify({'error': str(e)})

# অ্যাপ্লিকেশন চালানো
if __name__ == '__main__':
    app.run(debug=True)

ব্যাখ্যা:

  • Flask অ্যাপ তৈরি করা হয়েছে যা POST রিকোয়েস্ট নেয় এবং ইনপুট ডেটা থেকে মডেল থেকে প্রেডিকশন প্রদান করে।
  • Model.load() ব্যবহার করে আমরা সংরক্ষিত মডেলটিকে লোড করেছি এবং predict() ফাংশন ব্যবহার করে নতুন ইনপুটের জন্য প্রেডিকশন করেছি।

ধাপ ৩: API টেস্ট করা

Flask অ্যাপটি চালু করতে python app.py কমান্ড ব্যবহার করুন। এটি একটি লোকাল সার্ভারে চালু হবে, সাধারণত http://127.0.0.1:5000 এ।

এখন, আপনি API টেস্ট করার জন্য Postman বা cURL ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

cURL দিয়ে API টেস্ট করা:

curl -X POST -H "Content-Type: application/json" -d '{"input": [0.5, 0.6, 0.7, 0.1, 0.3, 0.8, 0.4, 0.9, 0.6, 0.5]}' http://127.0.0.1:5000/predict

এটি একটি JSON অবজেক্ট পাঠাবে, যেখানে input একটি 10 ফিচারের লিস্ট থাকবে।

Postman দিয়ে API টেস্ট করা:

  1. Method: POST
  2. URL: http://127.0.0.1:5000/predict
  3. Body: JSON ফরম্যাটে:

    {
        "input": [0.5, 0.6, 0.7, 0.1, 0.3, 0.8, 0.4, 0.9, 0.6, 0.5]
    }
    

ধাপ ৪: Frontend (React) সাথে API Integration

এখন, আপনি এই API-কে React বা অন্য কোনো ফ্রন্টএন্ড ফ্রেমওয়ার্কের মাধ্যমে ব্যবহার করতে পারেন।

React এর মাধ্যমে API Integration:

  1. React অ্যাপ তৈরি করুন:

    npx create-react-app my-api-app
    cd my-api-app
    npm start
    
  2. API কল করা:

    App.js ফাইলে API কল করার জন্য Axios ব্যবহার করতে পারেন:

    npm install axios
    

    এরপর App.js ফাইলে API কল করুন:

    import React, { useState } from 'react';
    import axios from 'axios';
    
    function App() {
      const [prediction, setPrediction] = useState(null);
      const [inputData, setInputData] = useState([0.5, 0.6, 0.7, 0.1, 0.3, 0.8, 0.4, 0.9, 0.6, 0.5]);
    
      const handleSubmit = async () => {
        try {
          const response = await axios.post('http://127.0.0.1:5000/predict', {
            input: inputData
          });
          setPrediction(response.data.prediction);
        } catch (error) {
          console.error("Error making prediction:", error);
        }
      };
    
      return (
        <div>
          <h1>Model Prediction</h1>
          <button onClick={handleSubmit}>Get Prediction</button>
          {prediction !== null && <h2>Prediction: {prediction}</h2>}
        </div>
      );
    }
    
    export default App;
    

React অ্যাপ চালানো:

এখন, React অ্যাপ চালানোর জন্য:

npm start

আপনি ব্রাউজারে http://localhost:3000 এ React অ্যাপ দেখতে পাবেন, যেখানে আপনি মডেল থেকে প্রেডিকশন পেতে পারবেন।


সারাংশ:

  • Model Deployment: আপনার মডেলটি Flask API ব্যবহার করে সার্ভ করা হয়েছে। এখানে TensorFlow মডেলটি লোড করা হয়েছে এবং POST রিকোয়েস্টের মাধ্যমে প্রেডিকশন প্রদান করা হয়েছে।
  • API Integration: React অ্যাপ থেকে API কল করার জন্য Axios ব্যবহার করা হয়েছে এবং প্রেডিকশন টেক্সট হিসেবে ফ্রন্টএন্ডে দেখানো হয়েছে।
Content added By
Promotion

Are you sure to start over?

Loading...