ক্লাউড এআই প্ল্যাটফর্মে একটি পাইটর্চ মডেলের প্রশিক্ষণ এবং হাইপারপ্যারামিটার টিউনিং

1. সংক্ষিপ্ত বিবরণ

এই ল্যাবে, আপনি Google Cloud-এ একটি সম্পূর্ণ ML প্রশিক্ষণ কর্মপ্রবাহের মধ্য দিয়ে যাবেন, PyTorch ব্যবহার করে আপনার মডেল তৈরি করবেন। Cloud AI প্ল্যাটফর্ম নোটবুক পরিবেশ থেকে, আপনি শিখবেন কিভাবে হাইপারপ্যারামিটার টিউনিং সহ AI প্ল্যাটফর্ম প্রশিক্ষণে আপনার প্রশিক্ষণের কাজটি চালানোর জন্য প্যাকেজ আপ করবেন।

তুমি যা শিখো

তুমি শিখবে কিভাবে:

  • একটি AI প্ল্যাটফর্ম নোটবুক ইনস্ট্যান্স তৈরি করুন
  • একটি PyTorch মডেল তৈরি করুন
  • এআই প্ল্যাটফর্ম প্রশিক্ষণে হাইপারপ্যারামিটার টিউনিং দিয়ে আপনার মডেলকে প্রশিক্ষণ দিন

গুগল ক্লাউডে এই ল্যাবটি পরিচালনা করতে মোট খরচ প্রায় $1

2. আপনার পরিবেশ সেটআপ করুন

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

ধাপ ১: ক্লাউড এআই প্ল্যাটফর্ম মডেল এপিআই সক্ষম করুন

আপনার ক্লাউড কনসোলের AI প্ল্যাটফর্ম মডেল বিভাগে যান এবং যদি এটি ইতিমধ্যেই সক্ষম না থাকে তবে সক্ষম করুন-এ ক্লিক করুন।

d0d38662851c6af3.png সম্পর্কে

ধাপ ২: কম্পিউট ইঞ্জিন API সক্ষম করুন

কম্পিউট ইঞ্জিনে নেভিগেট করুন এবং যদি এটি ইতিমধ্যেই সক্রিয় না থাকে তবে সক্ষম করুন নির্বাচন করুন। আপনার নোটবুক ইনস্ট্যান্স তৈরি করতে আপনার এটির প্রয়োজন হবে।

ধাপ ৩: একটি AI প্ল্যাটফর্ম নোটবুক ইনস্ট্যান্স তৈরি করুন

আপনার ক্লাউড কনসোলের AI প্ল্যাটফর্ম নোটবুক বিভাগে যান এবং New Instance এ ক্লিক করুন। তারপর সর্বশেষ PyTorch ইনস্ট্যান্স টাইপ (GPU ছাড়া) নির্বাচন করুন:

892b7588f940d145.png সম্পর্কে

ডিফল্ট বিকল্পগুলি ব্যবহার করুন অথবা আপনি চাইলে এটিকে একটি কাস্টম নাম দিন, এবং তারপর Create এ ক্লিক করুন। ইনস্ট্যান্স তৈরি হয়ে গেলে, Open JupyterLab নির্বাচন করুন:

63d2cf44801c2df5.png সম্পর্কে

এরপর, লঞ্চার থেকে একটি Python 3 Notebook ইনস্ট্যান্স খুলুন:

de4c86c6c7f9438f.png সম্পর্কে

তুমি শুরু করতে প্রস্তুত!

ধাপ ৫: পাইথন প্যাকেজ আমদানি করুন

আপনার নোটবুকের প্রথম ঘরে, নিম্নলিখিত আমদানিগুলি যোগ করুন এবং সেলটি চালান। আপনি উপরের মেনুতে ডান তীর বোতাম টিপে অথবা কমান্ড-এন্টার টিপে এটি চালাতে পারেন:

import datetime
import numpy as np
import os
import pandas as pd
import time

আপনি লক্ষ্য করবেন যে আমরা এখানে PyTorch আমদানি করছি না। এর কারণ হল আমরা প্রশিক্ষণের কাজটি AI প্ল্যাটফর্ম প্রশিক্ষণে চালাচ্ছি, আমাদের নোটবুক ইনস্ট্যান্স থেকে নয়।

৩. প্রশিক্ষণ কাজের জন্য একটি প্যাকেজ তৈরি করুন

AI প্ল্যাটফর্ম প্রশিক্ষণে আমাদের প্রশিক্ষণ কাজ চালানোর জন্য, আমাদের নোটবুক ইনস্ট্যান্সে স্থানীয়ভাবে প্যাকেজ করা প্রশিক্ষণ কোড এবং আমাদের কাজের জন্য সম্পদ সংরক্ষণের জন্য একটি ক্লাউড স্টোরেজ বাকেটের প্রয়োজন হবে। প্রথমে, আমরা একটি স্টোরেজ বাকেট তৈরি করব। যদি আপনার ইতিমধ্যেই একটি থাকে তবে আপনি এই ধাপটি এড়িয়ে যেতে পারেন।

ধাপ ১: আমাদের মডেলের জন্য একটি ক্লাউড স্টোরেজ বাকেট তৈরি করুন

প্রথমে কিছু পরিবেশগত ভেরিয়েবল সংজ্ঞায়িত করা যাক যা আমরা কোডল্যাবের বাকি অংশ জুড়ে ব্যবহার করব। আপনার গুগল ক্লাউড প্রকল্পের নাম এবং আপনি যে ক্লাউড স্টোরেজ বাকেট তৈরি করতে চান তার নাম দিয়ে নীচের মানগুলি পূরণ করুন (এগুলি অবশ্যই বিশ্বব্যাপী অনন্য হতে হবে):

# Update these to your own GCP project, model, and version names
GCP_PROJECT = 'your-gcp-project'
BOCKET_URL = 'gs://storage_bucket_name'

এখন আমরা একটি স্টোরেজ বালতি তৈরি করতে প্রস্তুত, যা আমরা আমাদের প্রশিক্ষণের কাজ শুরু করার সময় নির্দেশ করব।

একটি বাকেট তৈরি করতে আপনার নোটবুকের মধ্যে থেকে এই gsutil কমান্ডটি চালান:

!gsutil mb $BUCKET_URL

ধাপ ২: আমাদের পাইথন প্যাকেজের জন্য প্রাথমিক ফাইল তৈরি করুন

AI প্ল্যাটফর্মে প্রশিক্ষণের কাজ চালানোর জন্য, আমাদের কোডটিকে একটি Python প্যাকেজ হিসেবে কনফিগার করতে হবে। এতে আমাদের রুট ডিরেক্টরিতে একটি setup.py ফাইল থাকে যা যেকোনো বহিরাগত প্যাকেজ নির্ভরতা নির্দিষ্ট করে, আমাদের প্যাকেজের নাম সহ একটি সাবডিরেক্টরি (এখানে আমরা এটিকে trainer/ বলব), এবং এই সাবডিরেক্টরিতে একটি খালি __init__.py ফাইল থাকে।

প্রথমে, আমাদের setup.py ফাইলটি লিখি। আমরা আমাদের ইনস্ট্যান্সে ফাইলটি সংরক্ষণ করার জন্য iPython %%writefile magics ব্যবহার করছি। এখানে আমরা 3টি বহিরাগত লাইব্রেরি নির্দিষ্ট করেছি যা আমরা আমাদের প্রশিক্ষণ কোডে ব্যবহার করব: PyTorch, Scikit-learn, এবং Pandas:

%%writefile setup.py
from setuptools import find_packages
from setuptools import setup

REQUIRED_PACKAGES = ['torch>=1.5', 'scikit-learn>=0.20', 'pandas>=1.0']

setup(
    name='trainer',
    version='0.1',
    install_requires=REQUIRED_PACKAGES,
    packages=find_packages(),
    include_package_data=True,
    description='My training application package.'
)

এরপর আমাদের trainer/ ডিরেক্টরি এবং এর মধ্যে খালি init .py ফাইলটি তৈরি করা যাক। পাইথন এই ফাইলটি ব্যবহার করে চিনতে পারে যে এটি একটি প্যাকেজ:

!mkdir trainer
!touch trainer/__init__.py

এখন আমরা আমাদের প্রশিক্ষণের কাজ শুরু করতে প্রস্তুত।

৪. ডেটাসেটের পূর্বরূপ দেখুন

এই ল্যাবের মূল লক্ষ্য হলো প্রশিক্ষণ মডেলের জন্য টুলিং, তবে আসুন আমরা আমাদের মডেলকে বোঝার জন্য যে ডেটাসেট ব্যবহার করব তা একবার দেখে নেওয়া যাক। আমরা BigQuery-তে উপলব্ধ জন্মগত ডেটাসেট ব্যবহার করব। এতে কয়েক দশক ধরে মার্কিন যুক্তরাষ্ট্রের জন্মগত ডেটা রয়েছে। আমরা একটি শিশুর জন্মের ওজন অনুমান করার জন্য ডেটাসেট থেকে কয়েকটি কলাম ব্যবহার করব। মূল ডেটাসেটটি বেশ বড়, এবং আমরা এর একটি উপসেট ব্যবহার করব যা আমরা আপনার জন্য ক্লাউড স্টোরেজ বাকেটে উপলব্ধ করেছি।

ধাপ ১: BigQuery ন্যাটালিটি ডেটাসেট ডাউনলোড করা

আসুন, ক্লাউড স্টোরেজে আপনার জন্য উপলব্ধ ডেটাসেটের সংস্করণটি একটি পান্ডাস ডেটাফ্রেমে ডাউনলোড করি এবং এটির প্রিভিউ দেখি।

natality = pd.read_csv('https://storage.googleapis.com/ml-design-patterns/natality.csv')
natality.head()

এই ডেটাসেটে ১০০,০০০ এরও কম সারি আছে। আমরা শিশুর জন্মের ওজন অনুমান করার জন্য ৫টি বৈশিষ্ট্য ব্যবহার করব: মা এবং বাবার বয়স, গর্ভকালীন সপ্তাহ, পাউন্ডে মায়ের ওজন বৃদ্ধি এবং বুলিয়ান হিসাবে শিশুর লিঙ্গ।

৫. হাইপারপ্যারামিটার টিউনিং এর মাধ্যমে প্রশিক্ষণের কাজ নির্ধারণ করুন

আমরা আমাদের প্রশিক্ষণ স্ক্রিপ্টটি আগে তৈরি করা প্রশিক্ষক/সাবডিরেক্টরির মধ্যে model.py নামক একটি ফাইলে লিখব। আমাদের প্রশিক্ষণের কাজটি AI প্ল্যাটফর্ম প্রশিক্ষণের উপর পরিচালিত হবে এবং এটি AI প্ল্যাটফর্মের হাইপারপ্যারামিটার টিউনিং পরিষেবা ব্যবহার করে আমাদের মডেলের জন্য সর্বোত্তম হাইপারপ্যারামিটারগুলি খুঁজে বের করবে যা Bayesian অপ্টিমাইজেশন ব্যবহার করে।

ধাপ ১: প্রশিক্ষণ স্ক্রিপ্ট তৈরি করুন

প্রথমে, আমাদের প্রশিক্ষণ স্ক্রিপ্ট ব্যবহার করে পাইথন ফাইলটি তৈরি করা যাক। তারপর আমরা এতে কী ঘটছে তা বিশ্লেষণ করব। এই %%writefile কমান্ডটি চালানোর মাধ্যমে মডেল কোডটি একটি স্থানীয় পাইথন ফাইলে লেখা হবে:

%%writefile trainer/model.py
import argparse
import hypertune
import numpy as np
import pandas as pd
import torch
import torch.nn as nn
import torch.optim as optim

from sklearn.utils import shuffle
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import normalize

def get_args():
    """Argument parser.
    Returns:
        Dictionary of arguments.
    """
    parser = argparse.ArgumentParser(description='PyTorch MNIST')
    parser.add_argument('--job-dir',  # handled automatically by AI Platform
                        help='GCS location to write checkpoints and export ' \
                             'models')
    parser.add_argument('--lr',  # Specified in the config file
                        type=float,
                        default=0.01,
                        help='learning rate (default: 0.01)')
    parser.add_argument('--momentum',  # Specified in the config file
                        type=float,
                        default=0.5,
                        help='SGD momentum (default: 0.5)')
    parser.add_argument('--hidden-layer-size',  # Specified in the config file
                        type=int,
                        default=8,
                        help='hidden layer size')
    args = parser.parse_args()
    return args

def train_model(args):
    # Get the data
    natality = pd.read_csv('https://storage.googleapis.com/ml-design-patterns/natality.csv')
    natality = natality.dropna()
    natality = shuffle(natality, random_state = 2)
    natality.head()

    natality_labels = natality['weight_pounds']
    natality = natality.drop(columns=['weight_pounds'])


    train_size = int(len(natality) * 0.8)
    traindata_natality = natality[:train_size]
    trainlabels_natality = natality_labels[:train_size]

    testdata_natality = natality[train_size:]
    testlabels_natality = natality_labels[train_size:]

    # Normalize and convert to PT tensors
    normalized_train = normalize(np.array(traindata_natality.values), axis=0)
    normalized_test = normalize(np.array(testdata_natality.values), axis=0)

    train_x = torch.Tensor(normalized_train)
    train_y = torch.Tensor(np.array(trainlabels_natality))

    test_x = torch.Tensor(normalized_test)
    test_y = torch.Tensor(np.array(testlabels_natality))

    # Define our data loaders
    train_dataset = torch.utils.data.TensorDataset(train_x, train_y)
    train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=128, shuffle=True)

    test_dataset = torch.utils.data.TensorDataset(test_x, test_y)
    test_dataloader = torch.utils.data.DataLoader(test_dataset, batch_size=128, shuffle=False)

    # Define the model, while tuning the size of our hidden layer
    model = nn.Sequential(nn.Linear(len(train_x[0]), args.hidden_layer_size),
                          nn.ReLU(),
                          nn.Linear(args.hidden_layer_size, 1))
    criterion = nn.MSELoss()

    # Tune hyperparameters in our optimizer
    optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum)
    epochs = 20
    for e in range(epochs):
        for batch_id, (data, label) in enumerate(train_dataloader):
            optimizer.zero_grad()
            y_pred = model(data)
            label = label.view(-1,1)
            loss = criterion(y_pred, label)
            
            loss.backward()
            optimizer.step()


    val_mse = 0
    num_batches = 0
    # Evaluate accuracy on our test set
    with torch.no_grad():
        for i, (data, label) in enumerate(test_dataloader):
            num_batches += 1
            y_pred = model(data)
            mse = criterion(y_pred, label.view(-1,1))
            val_mse += mse.item()


    avg_val_mse = (val_mse / num_batches)

    # Report the metric we're optimizing for to AI Platform's HyperTune service
    # In this example, we're mimizing error on our test set
    hpt = hypertune.HyperTune()
    hpt.report_hyperparameter_tuning_metric(
        hyperparameter_metric_tag='val_mse',
        metric_value=avg_val_mse,
        global_step=epochs        
    )

def main():
    args = get_args()
    print('in main', args)
    train_model(args)

if __name__ == '__main__':
    main()

প্রশিক্ষণের কাজ দুটি ফাংশন নিয়ে গঠিত যেখানে বেশিরভাগ কাজই সম্পন্ন হয়।

  • get_args() : এটি আমাদের প্রশিক্ষণ কাজ তৈরি করার সময় আমরা যে কমান্ড লাইন আর্গুমেন্টগুলি পাস করব, সেই সাথে AI প্ল্যাটফর্মকে আমরা যে হাইপারপ্যারামিটারগুলি অপ্টিমাইজ করতে চাই তা বিশ্লেষণ করে। এই উদাহরণে আমাদের আর্গুমেন্টের তালিকায় কেবলমাত্র সেই হাইপারপ্যারামিটারগুলি অন্তর্ভুক্ত রয়েছে যা আমরা অপ্টিমাইজ করব - আমাদের মডেলের শেখার হার, ভরবেগ এবং আমাদের লুকানো স্তরে নিউরনের সংখ্যা।
  • train_model() : এখানে আমরা একটি Pandas DataFrame-এ ডেটা ডাউনলোড করব, এটিকে স্বাভাবিক করব, PyTorch Tensor-এ রূপান্তর করব এবং তারপর আমাদের মডেলটি সংজ্ঞায়িত করব। আমাদের মডেল তৈরি করতে আমরা PyTorch nn.Sequential API ব্যবহার করছি, যা আমাদের মডেলটিকে স্তরগুলির একটি স্ট্যাক হিসাবে সংজ্ঞায়িত করতে দেয়:
model = nn.Sequential(nn.Linear(len(train_x[0]), args.hidden_layer_size),
                      nn.ReLU(),
                      nn.Linear(args.hidden_layer_size, 1))

লক্ষ্য করুন যে আমাদের মডেলের লুকানো স্তরের আকার হার্ডকোড করার পরিবর্তে, আমরা এটিকে একটি হাইপারপ্যারামিটার তৈরি করছি যা AI প্ল্যাটফর্ম আমাদের জন্য টিউন করবে। পরবর্তী বিভাগে এ সম্পর্কে আরও জানুন।

ধাপ ২: এআই প্ল্যাটফর্মের হাইপারপ্যারামিটার টিউনিং পরিষেবা ব্যবহার করা

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

হাইপারপ্যারামিটার টিউনিং-এ, একটি একক ট্রায়ালে আমাদের মডেলের একটি প্রশিক্ষণ রান থাকে যার মধ্যে হাইপারপ্যারামিটার মানের একটি নির্দিষ্ট সংমিশ্রণ থাকে। আমরা কতগুলি ট্রায়াল চালাই তার উপর নির্ভর করে, AI প্ল্যাটফর্ম ভবিষ্যতের জন্য নির্বাচিত হাইপারপ্যারামিটারগুলিকে অপ্টিমাইজ করার জন্য সম্পূর্ণ ট্রায়ালের ফলাফল ব্যবহার করবে। হাইপারপ্যারামিটার টিউনিং কনফিগার করার জন্য, আমাদের প্রশিক্ষণ কাজ শুরু করার সময় আমরা যে হাইপারপ্যারামিটারগুলিকে অপ্টিমাইজ করছি তার কিছু ডেটা সহ একটি কনফিগার ফাইল পাস করতে হবে।

এরপর, স্থানীয়ভাবে সেই কনফিগার ফাইলটি তৈরি করুন:

%%writefile config.yaml
trainingInput:
  hyperparameters:
    goal: MINIMIZE
    maxTrials: 10
    maxParallelTrials: 5
    hyperparameterMetricTag: val_mse
    enableTrialEarlyStopping: TRUE
    params:
    - parameterName: lr
      type: DOUBLE
      minValue: 0.0001
      maxValue: 0.1
      scaleType: UNIT_LINEAR_SCALE
    - parameterName: momentum
      type: DOUBLE
      minValue: 0.0
      maxValue: 1.0
      scaleType: UNIT_LINEAR_SCALE
    - parameterName: hidden-layer-size
      type: INTEGER
      minValue: 8
      maxValue: 32
      scaleType: UNIT_LINEAR_SCALE

প্রতিটি হাইপারপ্যারামিটারের জন্য, আমরা ধরণ, আমরা যে মানগুলি অনুসন্ধান করতে চাই তার পরিসর এবং বিভিন্ন পরীক্ষায় মান বাড়ানোর স্কেল নির্দিষ্ট করি।

কাজের শুরুতে আমরা যে মেট্রিকের জন্য অপ্টিমাইজ করছি তাও নির্দিষ্ট করে দিই। লক্ষ্য করুন যে উপরে আমাদের train_model() ফাংশনের শেষে, আমরা প্রতিবার ট্রায়াল সম্পন্ন হওয়ার সময় এই মেট্রিকটি AI প্ল্যাটফর্মে রিপোর্ট করি। এখানে আমরা আমাদের মডেলের গড় বর্গ ত্রুটি কমিয়ে আনছি, এবং তাই আমরা হাইপারপ্যারামিটারগুলি ব্যবহার করতে চাই যা আমাদের মডেলের জন্য সর্বনিম্ন গড় বর্গ ত্রুটি তৈরি করে। এই মেট্রিকের নাম ( val_mse ) আমরা যখন একটি ট্রায়াল শেষে report_hyperparameter_tuning_metric() কল করি তখন এটি রিপোর্ট করার জন্য ব্যবহৃত নামের সাথে মিলে যায়।

৬. এআই প্ল্যাটফর্মে একটি প্রশিক্ষণ কাজ পরিচালনা করুন

এই বিভাগে আমরা AI প্ল্যাটফর্মে হাইপারপ্যারামিটার টিউনিং দিয়ে আমাদের মডেল প্রশিক্ষণের কাজ শুরু করব।

ধাপ ১: কিছু পরিবেশগত ভেরিয়েবল সংজ্ঞায়িত করুন

প্রথমে কিছু পরিবেশগত ভেরিয়েবল সংজ্ঞায়িত করা যাক যা আমরা আমাদের প্রশিক্ষণ কাজ শুরু করার জন্য ব্যবহার করব। যদি আপনি অন্য কোনও অঞ্চলে আপনার কাজ চালাতে চান, তাহলে নীচের REGION ভেরিয়েবলটি আপডেট করুন:

MAIN_TRAINER_MODULE = "trainer.model"
TRAIN_DIR = os.getcwd() + '/trainer'
JOB_DIR = BUCKET_URL + '/output'
REGION = "us-central1"

AI প্ল্যাটফর্মে প্রতিটি প্রশিক্ষণ কাজের একটি অনন্য নাম থাকা উচিত। টাইমস্ট্যাম্প ব্যবহার করে আপনার কাজের নামের জন্য একটি ভেরিয়েবল নির্ধারণ করতে নিম্নলিখিতটি চালান:

timestamp = str(datetime.datetime.now().time())
JOB_NAME = 'caip_training_' + str(int(time.time()))

ধাপ ২: প্রশিক্ষণের কাজ শুরু করুন

আমরা gcloud, গুগল ক্লাউড CLI ব্যবহার করে আমাদের প্রশিক্ষণের কাজ তৈরি করব। আমরা উপরে সংজ্ঞায়িত ভেরিয়েবলগুলি উল্লেখ করে সরাসরি আমাদের নোটবুকে এই কমান্ডটি চালাতে পারি:

!gcloud ai-platform jobs submit training $JOB_NAME \
        --scale-tier basic \
        --package-path $TRAIN_DIR \
        --module-name $MAIN_TRAINER_MODULE \
        --job-dir $JOB_DIR \
        --region $REGION \
        --runtime-version 2.1 \
        --python-version 3.7 \
        --config config.yaml

যদি আপনার কাজটি সঠিকভাবে তৈরি করা হয়ে থাকে, তাহলে লগগুলি পর্যবেক্ষণ করতে আপনার AI প্ল্যাটফর্ম কনসোলের চাকরি বিভাগে যান।

ধাপ ৩: আপনার কাজ পর্যবেক্ষণ করুন

কনসোলের জবস বিভাগে চলে গেলে, বিস্তারিত দেখতে আপনি যে জবটি শুরু করেছেন তাতে ক্লিক করুন:

c184167641bb7ed7.png সম্পর্কে

আপনার প্রথম রাউন্ডের ট্রায়াল শুরু হওয়ার সাথে সাথে, আপনি প্রতিটি ট্রায়ালের জন্য নির্বাচিত হাইপারপ্যারামিটার মানগুলি দেখতে সক্ষম হবেন:

787c053ef9110e6b.png সম্পর্কে

ট্রায়াল সম্পন্ন হলে, আপনার অপ্টিমাইজেশন মেট্রিকের (এই ক্ষেত্রে val_mse ) ফলাফলের মান এখানে লগ করা হবে। কাজটি চালাতে ১৫-২০ মিনিট সময় লাগবে এবং কাজ শেষ হলে ড্যাশবোর্ডটি এরকম দেখাবে (সঠিক মানগুলি ভিন্ন হবে):

47ef6b9b4ecb532c.png সম্পর্কে

সম্ভাব্য সমস্যাগুলি ডিবাগ করতে এবং আপনার কাজ আরও বিস্তারিতভাবে পর্যবেক্ষণ করতে, চাকরির বিস্তারিত পৃষ্ঠা থেকে View Logs- এ ক্লিক করুন:

18c32dcd36351930.png সম্পর্কে

আপনার মডেল ট্রেনিং কোডের প্রতিটি print() স্টেটমেন্ট এখানে দেখাবে। যদি আপনার কোন সমস্যার সম্মুখীন হন, তাহলে আরও print স্টেটমেন্ট যোগ করে একটি নতুন ট্রেনিং কাজ শুরু করার চেষ্টা করুন।

আপনার প্রশিক্ষণের কাজ শেষ হয়ে গেলে, সর্বনিম্ন val_mse প্রদানকারী হাইপারপ্যারামিটারগুলি খুঁজুন। আপনি হয় আপনার মডেলের একটি চূড়ান্ত সংস্করণ প্রশিক্ষণ এবং রপ্তানি করতে এগুলি ব্যবহার করতে পারেন, অথবা অতিরিক্ত হাইপারপ্যারামিটার টিউনিং ট্রায়াল সহ অন্য একটি প্রশিক্ষণের কাজ শুরু করার জন্য নির্দেশিকা হিসাবে এগুলি ব্যবহার করতে পারেন।

৭. পরিষ্কার-পরিচ্ছন্নতা

আপনি যদি এই নোটবুকটি ব্যবহার চালিয়ে যেতে চান, তাহলে ব্যবহার না করার সময় এটি বন্ধ করে দেওয়ার পরামর্শ দেওয়া হচ্ছে। আপনার ক্লাউড কনসোলের নোটবুকস UI থেকে, নোটবুকটি নির্বাচন করুন এবং তারপর "থামুন" নির্বাচন করুন:

879147427150b6c7.png সম্পর্কে

যদি আপনি এই ল্যাবে তৈরি করা সমস্ত রিসোর্স মুছে ফেলতে চান, তাহলে নোটবুক ইনস্ট্যান্সটি বন্ধ করার পরিবর্তে মুছে ফেলুন।

আপনার ক্লাউড কনসোলের নেভিগেশন মেনু ব্যবহার করে, স্টোরেজ ব্রাউজ করুন এবং আপনার মডেল সম্পদ সংরক্ষণের জন্য তৈরি করা উভয় বাকেট মুছে ফেলুন।