Fashion-MNIST သည် နမူနာ 60,000 နှင့် နမူနာ 10,000 ၏ စမ်းသပ်မှုအစုံပါ၀င်သော Zalando ၏ ဆောင်းပါးပုံများ၏ ဒေတာအတွဲတစ်ခုဖြစ်သည်။ ဥပမာတစ်ခုစီသည် အတန်း ၁၀ ခုမှ အညွှန်းတစ်ခုနှင့် ဆက်စပ်နေသည့် 28×28 မီးခိုးရောင်ပုံတစ်ပုံဖြစ်သည်။ ဒေတာအတွဲသည် မူရင်း MNIST ဒေတာအတွဲအတွက် စံနမူနာပြုသည့် စက်သင်ယူမှု အယ်လဂိုရီသမ်အတွက် တိုက်ရိုက်အစားထိုးမှုအဖြစ် လုပ်ဆောင်ပေးကာ ဖက်ရှင်ဆိုင်ရာပုံများတွင် ၎င်း၏ရှုပ်ထွေးမှုနှင့် ကွဲပြားမှုများကြောင့် ပိုမိုစိန်ခေါ်မှုရှိသော အစားထိုးရွေးချယ်မှုကို ပေးဆောင်သည်။
Google Cloud ၏ AI Platform တွင် Fashion-MNIST ဒေတာအစုံကို လက်တွေ့ကျကျအသုံးပြုရန်၊ ဒေတာပြင်ဆင်မှု၊ မော်ဒယ်လေ့ကျင့်မှု၊ အသုံးချမှုနှင့် အကဲဖြတ်မှုတို့ကို ပေါင်းစပ်ပါဝင်သော ဖွဲ့စည်းတည်ဆောက်ပုံအဆင့်များစွာကို လိုက်နာရမည်ဖြစ်သည်။ ဤအဆင့်တစ်ခုစီသည် dataset နှင့် Google Cloud ပတ်ဝန်းကျင် နှစ်ခုလုံးကို ကျယ်ကျယ်ပြန့်ပြန့် နားလည်ရန် လိုအပ်ပါသည်။
အဆင့် 1- Google Cloud ပတ်ဝန်းကျင်ကို စနစ်ထည့်သွင်းခြင်း။
ဒေတာအတွဲကို အသုံးမပြုမီ သင့်တွင် Google Cloud အကောင့်တစ်ခုရှိရန် သေချာပါစေ။ Google Cloud Console တွင် ပရောဂျက်အသစ်တစ်ခုကို စနစ်ထည့်သွင်းပါ။ သင့်ပရောဂျက်အတွက် ငွေတောင်းခံခြင်းကိုဖွင့်ပြီး Cloud AI Platform API ကို အသက်သွင်းပါ။ စက်သင်ယူခြင်းလုပ်ငန်းများအတွက် Google ၏ ခိုင်မာသောအခြေခံအဆောက်အအုံကို အသုံးချနိုင်သောကြောင့် ဤစနစ်ထည့်သွင်းမှုသည် အရေးကြီးပါသည်။
1. Google Cloud ပရောဂျက်တစ်ခု ဖန်တီးပါ။: Google Cloud Console သို့သွား၍ ပရောဂျက်အသစ်တစ်ခုကို ဖန်တီးပါ။ အလွယ်တကူ ခွဲခြားသတ်မှတ်နိုင်ရန် သင့်ပရောဂျက်တွင် သီးသန့်အမည်တစ်ခု သတ်မှတ်ပါ။
2. APIs အား Enable- API & Services ဒိုင်ခွက်ကိုသွားပြီး Cloud AI Platform API ကိုဖွင့်ပါ။ ဤ API သည် Google Cloud တွင် စက်သင်ယူမှုပုံစံများကို အသုံးပြုရန်အတွက် မရှိမဖြစ်လိုအပ်ပါသည်။
3. Cloud SDK ကို ထည့်သွင်းပါ။- သင့်စက်တွင်းရှိ Google Cloud SDK ကို ဒေါင်းလုဒ်လုပ်ပြီး ထည့်သွင်းပါ။ ဤ SDK သည် သင်၏ Google Cloud အရင်းအမြစ်များနှင့် အပြန်အလှန်တုံ့ပြန်ရန်အတွက် လိုအပ်သော `gcloud` အမိန့်ပေးသည့်လိုင်းတူးလ်ကို ပံ့ပိုးပေးပါသည်။
အဆင့် 2- ဖက်ရှင်-MNIST ဒေတာအတွဲကို ပြင်ဆင်ခြင်း။
ဖက်ရှင်-MNIST ဒေတာအတွဲကို တရားဝင် GitHub သိုလှောင်မှုအပါအဝင် အရင်းအမြစ်အမျိုးမျိုးမှ ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။ Google Cloud ပေါ်ရှိ လေ့ကျင့်ရေးမော်ဒယ်များအတွက် မှန်ကန်သောဖော်မတ်ဖြစ်ကြောင်း သေချာစေရန် ဒေတာအစုံကို ကြိုတင်လုပ်ဆောင်ရန် အရေးကြီးပါသည်။
1. Dataset ကိုဒေါင်းလုဒ်လုပ်ပါ။: ဒေတာအတွဲကို CSV နှင့် NumPy အခင်းအကျင်းများအပါအဝင် ဖော်မက်များစွာဖြင့် ရနိုင်ပါသည်။ TensorFlow အသုံးပြုသူများအတွက်၊ ၎င်းကို `tensorflow.keras.datasets` module သုံးပြီး တိုက်ရိုက်တင်နိုင်သည်။
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. ဒေတာကို Preprocessing: ပုံများ၏ pixel တန်ဖိုးများကို 0 ဖြင့် ပိုင်းခြားခြင်းဖြင့် အကွာအဝေး [1, 255] သို့ ပုံမှန်ဖြစ်အောင် ပြုလုပ်ပါ။ လေ့ကျင့်နေစဉ်အတွင်း မော်ဒယ်ကို ထိရောက်စွာ ပေါင်းစည်းကြောင်း သေချာစေရန်အတွက် ဤအဆင့်သည် အရေးကြီးပါသည်။
python train_images = train_images/255.0 test_images = test_images/255.0
3. Reshape နှင့် Augment Data: မော်ဒယ်ဗိသုကာအပေါ်မူတည်၍ ဒေတာကို ပြန်လည်ပုံဖော်ရန် လိုအပ်နိုင်သည်။ ထို့အပြင်၊ မော်ဒယ်၏ကြံ့ခိုင်မှုကို မြှင့်တင်ရန် လှည့်ခြင်း၊ ချုံ့ချဲ့ခြင်းနှင့် အလျားလိုက်လှန်ခြင်းကဲ့သို့သော ဒေတာတိုးမြှင့်ခြင်းနည်းပညာများကို ထည့်သွင်းစဉ်းစားပါ။
အဆင့် 3- မော်ဒယ်ဖွံ့ဖြိုးတိုးတက်မှု
Fashion-MNIST ဒေတာအတွဲအတွက် သင့်လျော်သော စက်သင်ယူမှုပုံစံကို တီထွင်ပါ။ ရုပ်ပုံအမျိုးအစားခွဲခြားခြင်းလုပ်ငန်းများတွင် ၎င်းတို့၏ ထိရောက်မှု ရှိသောကြောင့် Convolutional Neural Networks (CNNs) သည် လူကြိုက်များသော ရွေးချယ်မှုတစ်ခုဖြစ်သည်။
1. Model Architecture ကို သတ်မှတ်ပါ။: CNN မော်ဒယ်ကို သတ်မှတ်ရန် TensorFlow သို့မဟုတ် PyTorch ကို အသုံးပြုပါ။ သာမာန်ဗိသုကာတစ်ခုတွင် အမြင့်ဆုံး-ပေါင်းကူးအလွှာများနောက်တွင် ပေါင်းစပ်ဖွဲ့စည်းပုံအလွှာများစွာနှင့် အပြည့်အဝချိတ်ဆက်သိပ်သည်းသောအလွှာတို့ ပါဝင်နိုင်သည်။
python model = tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ])
2. မော်ဒယ်ကို ပြုစုပါ။: သင့်လျော်သော optimizer၊ ဆုံးရှုံးမှုလုပ်ဆောင်ချက်နှင့် မက်ထရစ်များကို ရွေးချယ်ပါ။ အတန်းပေါင်းစုံ အမျိုးအစားခွဲခြင်းအတွက်၊ `sparse_categorical_crossentropy` ကို အများအားဖြင့် အသုံးပြုသည်။
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Model ကိုလေ့ကျင့်ပါ။: သင်တန်းဒေတာတွင် မော်ဒယ်ကို အံကိုက်ပါ။ မော်ဒယ်၏ စွမ်းဆောင်ရည်ကို စောင့်ကြည့်ရန်နှင့် အလွန်အကျွံ အံဝင်ခွင်ကျမဖြစ်စေရန် ခိုင်လုံသောဒေတာကို အသုံးပြုပါ။
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
အဆင့် 4- မော်ဒယ်ကို Google Cloud AI Platform တွင် ဖြန့်ကျက်ခြင်း။
မော်ဒယ်ကို လေ့ကျင့်သင်ကြားပြီးသည်နှင့်၊ နောက်တဆင့်မှာ ၎င်းကို အတိုင်းအတာဖြင့် ခန့်မှန်းချက်များအတွက် Google Cloud AI Platform တွင် အသုံးချရန်ဖြစ်သည်။
1. မော်ဒယ်ကိုသိမ်းဆည်းပါ။− TensorFlow SavedModel ကဲ့သို့သော Google Cloud နှင့် လိုက်ဖက်သော ဖော်မတ်သို့ လေ့ကျင့်ထားသော မော်ဒယ်ကို ထုတ်ယူပါ။
python model.save('fashion_mnist_model')
2. မော်ဒယ်ကို Google Cloud Storage သို့ အပ်လုဒ်လုပ်ပါ။− မော်ဒယ်ကို Google Cloud Storage ပုံးသို့ အပ်လုဒ်လုပ်ရန် `gsutil` ကွန်မန်းလိုင်းတူးလ်ကို အသုံးပြုပါ။
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. AI Platform တွင် Model တစ်ခုဖန်တီးပါ။- Google Cloud Console တွင်၊ AI Platform > Models သို့သွား၍ မော်ဒယ်အသစ်တစ်ခုကို ဖန်တီးပါ။ မော်ဒယ်အမည်နှင့် ဒေသကို သတ်မှတ်ပါ။
4. မော်ဒယ်ဗားရှင်းကို အသုံးပြုပါ။SavedModel ၏ Cloud Storage လမ်းကြောင်းကို သတ်မှတ်ခြင်းဖြင့် မော်ဒယ်၏ ဗားရှင်းအသစ်ကို ဖန်တီးပါ။ သင့်ခန့်မှန်းချက်လိုအပ်ချက်များအပေါ်အခြေခံ၍ စက်အမျိုးအစားနှင့် အတိုင်းအတာရွေးချယ်မှုများကို စီစဉ်သတ်မှတ်ပါ။
5. Deployment ကို စမ်းသပ်ပါ။: အသုံးပြုထားသည့် မော်ဒယ်ကို စမ်းသပ်ရန် AI ပလပ်ဖောင်း၏ ခန့်မှန်းဝန်ဆောင်မှုကို အသုံးပြုပါ။ ပုံဒေတာဖြင့် မော်ဒယ်အဆုံးမှတ်သို့ HTTP တောင်းဆိုမှုများကို ပေးပို့နိုင်ပြီး ခန့်မှန်းချက်များကို လက်ခံနိုင်သည်။
python from google.cloud import aiplatform project = 'your-project-id' endpoint_id = 'your-endpoint-id' location = 'us-central1' aiplatform.init(project=project, location=location) endpoint = aiplatform.Endpoint(endpoint_id=endpoint_id) # Example prediction response = endpoint.predict(instances=[test_images[0].tolist()]) print(response)
အဆင့် 5- မော်ဒယ်အကဲဖြတ်ခြင်းနှင့် ထပ်ကာထပ်ကာ ပြုလုပ်ခြင်း။
အသုံးပြုပြီးနောက်၊ မော်ဒယ်၏ စွမ်းဆောင်ရည်ကို အကဲဖြတ်ပြီး တိကျမှုနှင့် ထိရောက်မှု တိုးတက်စေရန် ဒီဇိုင်းကို ထပ်လောင်းရန် အရေးကြီးပါသည်။
1. မော်ဒယ်စွမ်းဆောင်ရည်ကို စောင့်ကြည့်ပါ။− ကြာမြင့်ချိန်၊ ဖြတ်သန်းမှုနှင့် ခန့်မှန်းခြေတိကျမှုကဲ့သို့သော မော်ဒယ်စွမ်းဆောင်ရည်မက်ထရစ်များကို ခြေရာခံရန် Google Cloud ၏ စောင့်ကြည့်ရေးကိရိယာများကို အသုံးပြုပါ။ ပိတ်ဆို့မှုများနှင့် တိုးတက်မှုအတွက် နယ်ပယ်များကို ဖော်ထုတ်ရန်အတွက် ဤဒေတာသည် အဖိုးမဖြတ်နိုင်ပါ။
2. A/B စမ်းသပ်ခြင်း: မတူညီသော မော်ဒယ်ဗားရှင်းများကို နှိုင်းယှဉ်ရန် A/B စမ်းသပ်ခြင်း။ ဤချဉ်းကပ်မှုသည် အပြောင်းအလဲများ၏ အကျိုးသက်ရောက်မှုကို နားလည်ရန်နှင့် အကောင်းဆုံးလုပ်ဆောင်နိုင်သော မော်ဒယ်ကို ရွေးချယ်ရာတွင် ကူညီပေးသည်။
3. စဉ်ဆက်မပြတ် ပေါင်းစပ်ခြင်းနှင့် အသုံးချခြင်း (CI/CD): မော်ဒယ်ဗားရှင်းအသစ်များကို အလိုအလျောက်အသုံးပြုနိုင်စေရန် CI/CD အလေ့အကျင့်များကို အကောင်အထည်ဖော်ပါ။ ဤစနစ်က တိုးတက်မှုများကို ထုတ်လုပ်မှုသို့ လျင်မြန်စွာ ပို့ဆောင်ကြောင်း သေချာစေသည်။
4. တုံ့ပြန်ချက် Loop: မော်ဒယ်ကြိုတင်ခန့်မှန်းချက်များဆိုင်ရာ ထိုးထွင်းသိမြင်မှုများကို စုဆောင်းရန်အတွက် သုံးစွဲသူများနှင့်အတူ တုံ့ပြန်ချက်ကွင်းဆက်တစ်ခုကို ထူထောင်ပါ။ မော်ဒယ်ကို ကောင်းစွာချိန်ညှိရန်နှင့် လက်တွေ့ကမ္ဘာသုံး အပလီကေးရှင်းများနှင့် ၎င်း၏ဆက်စပ်မှုကို မြှင့်တင်ရန် ဤအကြံပြုချက်ကို အသုံးပြုပါ။
5. ဒေတာအသစ်ဖြင့် ပြန်လည်လေ့ကျင့်ခြင်း။− အချိန်ကြာလာသည်နှင့်အမျှ ၎င်း၏တိကျမှုကို ထိန်းသိမ်းရန် မော်ဒယ်ကို ဒေတာအသစ်ဖြင့် ပုံမှန်မွမ်းမံပါ။ ခေတ်ရေစီးကြောင်းနှင့် စတိုင်များ လျင်မြန်စွာ ပြောင်းလဲတိုးတက်နေသည့် ဖက်ရှင်လုပ်ငန်းတွင် ဤအလေ့အကျင့်သည် အထူးအရေးကြီးပါသည်။
Fashion-MNIST ဒေတာအတွဲသည် Google Cloud ၏ AI Platform တွင် ရုပ်ပုံအမျိုးအစားခွဲခြားမှုပုံစံများကို လက်တွေ့ကျကျအသုံးချရန်အတွက် လက်တွေ့အသုံးပြုမှုကိစ္စရပ်ကို ပံ့ပိုးပေးပါသည်။ အကြမ်းဖျင်းအဆင့်များကို လိုက်နာခြင်းဖြင့်၊ အရွယ်အစားရှိ စက်သင်ယူမှုပုံစံများကို တည်ဆောက်ရန်၊ အသုံးပြုရန်နှင့် ထိန်းသိမ်းရန် Google ၏ အခြေခံအဆောက်အအုံကို ထိထိရောက်ရောက် အသုံးချနိုင်သည်။ ဤလုပ်ငန်းစဉ်သည် မော်ဒယ်၏ တိကျမှုနှင့် စွမ်းဆောင်ရည်ကို မြှင့်တင်ပေးရုံသာမက ဖက်ရှင်စက်မှုလုပ်ငန်းရှိ လက်တွေ့ကမ္ဘာအခြေအနေများနှင့်ပါ အသုံးချနိုင်မှုကိုလည်း အာမခံပါသည်။
Google သည် ၎င်း၏ AI ပလပ်ဖောင်းကို မကြာခဏ update လုပ်သည် (2024 ခုနှစ်မှ Vertex AI Platform သို့ ပြောင်းလဲခဲ့သည်)။ ဤအပ်ဒိတ်များတွင် ပြဿနာတစ်စုံတစ်ရာကြုံတွေ့ပါက၊ အောက်ပါကုဒ်ကိုလည်း စမ်းကြည့်နိုင်သည်-
python import google.auth import google.auth.transport.requests import requests import json from tensorflow.keras.datasets import fashion_mnist import numpy as np # Load and preprocess Fashion MNIST data (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() test_images = test_images/255.0 # Add channel dimension to all test images test_images = test_images.reshape(-1, 28, 28, 1) # Prepare your model and project details project_id = 'project_id' model_name = 'modelname' model_version = 'V1' region = 'europe-west3' # AI Platform prediction endpoint URL url = f'https://{region}-ml.googleapis.com/v1/projects/{project_id}/models/{model_name}/versions/{model_version}:predict' # Authenticate and get the auth token credentials, _ = google.auth.default() auth_req = google.auth.transport.requests.Request() credentials.refresh(auth_req) auth_token = credentials.token # Set up headers for the request headers = { 'Authorization': f'Bearer {auth_token}', 'Content-Type': 'application/json' } class_labels = [ "T-shirt/top", "Trouser", "Pullover", "Dress", "Coat", "Sandal", "Shirt", "Sneaker", "Bag", "Ankle boot" ] # Loop through the first 6 test images for i in range(6): # Prepare the instance for prediction instance = test_images[i].tolist() # Make the request body data = json.dumps({"instances": [instance]}) # Send the request response = requests.post(url, headers=headers, data=data) response_json = response.json() # Extract the predictions predicted_probs = response_json['predictions'][0] # Get the index of the highest probability predicted_index = np.argmax(predicted_probs) predicted_label = class_labels[predicted_index] predicted_probability = predicted_probs[predicted_index] # Print the result in a more readable format print(response_json) print(f"Image {i + 1}: Predicted class: {predicted_label} ({predicted_index}) with probability {predicted_probability:.10f}")
အခြား လတ်တလောမေးခွန်းများနှင့် အဖြေများ EITC/AI/GCML Google Cloud Machine Learning:
- machine learning တွင်အသုံးပြုသော hyperparameter များသည် အဘယ်နည်း။
- Whawt သည် စက်သင်ယူခြင်းအတွက် ပရိုဂရမ်းမင်း၏ဘာသာစကားဖြစ်ပြီး၊ ၎င်းသည် Just Python ဖြစ်သည်။
- စက်သင်ယူခြင်းအား သိပ္ပံလောကတွင် မည်သို့အသုံးချသနည်း။
- မည်သည့် machine learning algorithm ကိုအသုံးပြုရမည်ကို သင်မည်သို့ဆုံးဖြတ်ပြီး ၎င်းကို သင်မည်ကဲ့သို့ရှာဖွေမည်နည်း။
- Federated Learning၊ Edge Computing နှင့် On-Device Machine Learning အကြား ကွာခြားချက်များကား အဘယ်နည်း။
- သင်တန်းမစခင် Data တွေကို ဘယ်လိုပြင်ဆင်ပြီး သန့်ရှင်းရေးလုပ်ရမလဲ။
- စက်သင်ယူမှုပရောဂျက်တစ်ခုတွင် သီးခြား ကနဦးလုပ်ဆောင်စရာများနှင့် လုပ်ဆောင်ချက်များကား အဘယ်နည်း။
- တိကျသောစက်သင်ယူမှုဗျူဟာနှင့် မော်ဒယ်ကို လက်ခံကျင့်သုံးရန်အတွက် လက်မ၏စည်းမျဉ်းများသည် အဘယ်နည်း။
- မျဉ်းနမူနာပုံစံမှ နက်နဲသောသင်ယူမှုသို့ ပြောင်းရန် အချိန်တန်ပြီဖြစ်ကြောင်း မည်သည့်ဘောင်များက ညွှန်ပြသနည်း။
- TF ဖြန့်ဝေမှုများ မရရှိနိုင်သော ပြဿနာများကို ရှောင်ရှားရန် TensorFlow ကို ထည့်သွင်းရန်အတွက် Python ၏ မည်သည့်ဗားရှင်းသည် အကောင်းဆုံးဖြစ်မည်နည်း။
EITC/AI/GCML Google Cloud Machine Learning တွင် နောက်ထပ်မေးခွန်းများနှင့် အဖြေများကို ကြည့်ပါ။