TensorFlow ကို အသုံးပြုနည်း အခြေခံသင်ခန်းစာ (အခြေခံအဆင့်)

အစပြုသူများအတွက် TensorFlow သင်ခန်းစာ

TensorFlow သည် deep learning နှင့် machine learning အတွက် အလွန်ရေပန်းစားသော framework များထဲမှ တစ်ခုဖြစ်သည်။ Google Brain အဖွဲ့မှ တီထွင်ထားသော TensorFlow ကို သုတေသနပရောဂျက်များစွာနှင့် စက်မှုလုပ်ငန်းသုံး application များတွင် တွင်ကျယ်စွာအသုံးပြုခဲ့ကြသည်။ ဤဆောင်းပါးသည် TensorFlow ကို စတင်အသုံးပြုသူတစ်ဦးအနေဖြင့် သင့်အား အဆင့်ဆင့်လမ်းညွှန်ချက်ပေးပါသည်။

၁။ TensorFlow အခြေခံများကို နားလည်ခြင်း

TensorFlow ကို ထည့်သွင်းအသုံးပြုခြင်းမပြုမီ TensorFlow ဆိုတာဘာလဲ၊ ၎င်းရဲ့နောက်ကွယ်က အခြေခံသဘောတရားတွေကို နားလည်ထားဖို့ အရေးကြီးပါတယ်။ TensorFlow ဟာ ဂဏန်းသင်္ချာတွက်ချက်မှုနဲ့ စက်သင်ယူမှုအတွက် open-source framework တစ်ခုဖြစ်ပါတယ်။ ၎င်းဟာ ဂဏန်းသင်္ချာလုပ်ဆောင်ချက်တွေကို လုပ်ဆောင်ဖို့ data flow graph တွေကို အသုံးပြုပြီး graph ထဲက node တွေက သင်္ချာလုပ်ဆောင်ချက်တွေကို ကိုယ်စားပြုပြီး edge တွေက သူတို့အကြား ချိတ်ဆက်ထားတဲ့ multidimensional data array (tensors) တွေကို ကိုယ်စားပြုပါတယ်။

၂။ TensorFlow ထည့်သွင်းခြင်း

TensorFlow ကိုအသုံးပြုရာမှာ ပထမခြေလှမ်းက install လုပ်ခြင်းပါပဲ။ Python package manager ဖြစ်တဲ့ pip ကိုသုံးပြီး TensorFlow ကို install လုပ်နည်းကို ဖော်ပြပေးလိုက်ပါတယ်။

၁။ Python ထည့်သွင်းခြင်း-
သင့်စနစ်တွင် Python ကို ထည့်သွင်းထားကြောင်း သေချာပါစေ။ ဤစာရေးချိန်တွင် TensorFlow သည် Python 3.6 မှ 3.9 အထိနှင့် တွဲဖက်အသုံးပြုနိုင်သည်။ Python ကို တရားဝင် Python ဝက်ဘ်ဆိုက်မှ ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။

၂။ Virtual Environment:
သင့်ရဲ့ TensorFlow ပရောဂျက်ကို သီးခြားခွဲထုတ်ဖို့ virtual environment တစ်ခု ဖန်တီးဖို့ အထူးအကြံပြုလိုပါတယ်။
"ရှ
python -m venv myenv
Mac/Linux အသုံးပြုသူများအတွက် source myenv/bin/activate
Windows အသုံးပြုသူများအတွက် myenv\Scripts\activate
``

၃။ TensorFlow ထည့်သွင်းခြင်း-
ယခု pip ကို အသုံးပြု၍ TensorFlow ကို install လုပ်ပါ။
"ရှ
pip တွင် tensorflow ကို ထည့်သွင်းပါ။
``

၃။ TensorFlow ဖြင့် မင်္ဂလာပါ ကမ္ဘာကြီး

TensorFlow ကို install လုပ်ပြီးပြီဆိုရင် installation ကို verify လုပ်ဖို့ ရိုးရှင်းတဲ့ Python script တစ်ခု ဖန်တီးကြည့်ရအောင်။ Python ဖိုင်အသစ်တစ်ခု ဖန်တီးပြီး `hello_tensorflow.py` လို့ အမည်ပေးပါ။

“`စပါးအုံး
tensorflow ကို tf အဖြစ် တင်သွင်းပါ။

ကိန်းသေတစ်ခု ဖန်တီးပါ
မင်္ဂလာပါ = tf.constant('မင်္ဂလာပါ၊ TensorFlow!')

အစည်းအဝေးစတင်ပါ
tf.Session() ကို sess အဖြစ် အသုံးပြု၍-
ရလဒ် = sess.run(ဟယ်လို)
ပုံနှိပ်ခြင်း(ရလဒ်)
``

ဖတ်ရန်  SQL သင်ယူရန် အကောင်းဆုံး အွန်လိုင်းအရင်းအမြစ်များ

TensorFlow ဗားရှင်း 2.x နှင့်အညီ ကုဒ်ကို ပြုပြင်ပါ-

“`စပါးအုံး
tensorflow ကို tf အဖြစ် တင်သွင်းပါ။

ကိန်းသေတစ်ခု ဖန်တီးပါ
မင်္ဂလာပါ = tf.constant('မင်္ဂလာပါ၊ TensorFlow!')

eager execution ကို အသုံးပြု၍ လုပ်ဆောင်ပါ (default အနေဖြင့်ဖွင့်ထားသည်)
print(hello.numpy())
``

ဖိုင်ကို save လုပ်ပြီး run ပါ-
"ရှ
python hello_tensorflow.py
``

၄။ Tensor များနှင့် အခြေခံလုပ်ဆောင်ချက်များကို နားလည်ခြင်း

Tensor များသည် multidimensional array များဖြစ်သည့် TensorFlow ရှိ အဓိက data structure ဖြစ်သည်။ tensor များကို နားလည်ရန် ဥပမာအချို့ကို ဖော်ပြပေးလိုက်ပါတယ်။

“`စပါးအုံး
tensorflow ကို tf အဖြစ် တင်သွင်းပါ။

တန်ဆာများ ဖန်တီးခြင်း
scalar = tf. constant(7) scalar
vector = tf. constant([1, 2, 3]) vector
မက်ထရစ် = tf. ကိန်းသေ([[၁၊ ၂]၊ [၃၊ ၄]]) မက်ထရစ်
tensor3d = tf.constant([[[၁၊ ၂၊ ၃]၊ [၄၊ ၅၊ ၆]]၊ [[၇၊ ၈၊ ၉]၊ [၁၀၊ ၁၁၊ ၁၂]]]) ၃D တန်ဆာ

print(f'စကေးလာ: {စကေးလာ}')
print(f'ဗက်တာ: {ဗက်တာ}')
print(f'မက်ထရစ်: {မက်ထရစ်}')
print('Tensor 3D: {tensor3d}')
``

tensor များတွင် အခြေခံလုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန်-

“`စပါးအုံး
a = tf.constant([[၁၊ ၂]၊ [၃၊ ၄]])
b = tf.constant([[၅၊ ၆]၊ [၇၊ ၈]])

ပေါင်းထည့်ခြင်းလုပ်ဆောင်ချက်
add = tf.add(a, b)
မက်ထရစ်မြှောက်ခြင်းလုပ်ဆောင်ချက်များ
mul = tf.matmul(a, b)

print(f'ပေါင်းထည့်ခြင်း- {ပေါင်းထည့်ခြင်း}')
print(f'မက်ထရစ် မြှောက်ခြင်း- {mul}')
``

၅။ ရိုးရှင်းသော အာရုံကြောကွန်ရက် မော်ဒယ်တစ်ခု ဖန်တီးခြင်း

နောက်တစ်ဆင့်ကတော့ ရိုးရှင်းတဲ့ neural network model တစ်ခု ဖန်တီးဖို့ပါ။ လက်ရေး digit ပုံတွေရဲ့ database ဖြစ်တဲ့ MNIST dataset ကို အသုံးပြုပြီး image classification model တစ်ခုကို တည်ဆောက်ပါမယ်။ စလိုက်ကြရအောင်။

“`စပါးအုံး
tensorflow ကို tf အဖြစ် တင်သွင်းပါ။
tensorflow.keras မှ dataset များ၊ layer များ၊ model များကို import လုပ်ပါ

MNIST dataset ကို ဒေါင်းလုဒ်လုပ်ပါ
(ရထား_ပုံများ၊ ရထား_တံဆိပ်များ)၊ (စမ်းသပ်_ပုံများ၊ စမ်းသပ်_တံဆိပ်များ) = datasets.mnist.load_data()

ရုပ်ပုံ ပုံမှန်ဖြစ်အောင်ပြုလုပ်ခြင်း
ရထားပုံများ၊ စမ်းသပ်ပုံများ = ရထားပုံများ / ၂၅၅.၀၊ စမ်းသပ်ပုံများ / ၂၅၅.၀

မော်ဒယ်တစ်ခုပြုလုပ်ခြင်း
မော်ဒယ် = မော်ဒယ်များ။ အစဉ်လိုက်([
အလွှာများ။ ပြားချပ်အောင်ပြုလုပ်ပါ(input_shape=(၂၈၊ ၂၈))၊
layers.Dense(128၊ activation='relu'),
အလွှာများ။ သိပ်သည်းသော (၁၀)
])

မော်ဒယ်စုစည်းမှု
model.compile(optimizer='adam'၊
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)၊
မက်ထရစ်များ =['တိကျမှု'])

မော်ဒယ်ကို လေ့ကျင့်ပေးခြင်း
model.fit(ရထား_ပုံများ၊ ရထား_အညွှန်းများ၊ epochs=၅)

မော်ဒယ်ကို စမ်းသပ်ခြင်း
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'စမ်းသပ်မှုတိကျမှု- {test_acc}')
``

ရှင်းလင်းချက်
– ဒေတာအစုများ- ကျွန်ုပ်တို့သည် MNIST ဒေတာအစုကို တင်သွင်းပြီး တင်ပါသည်။
- ကြိုတင်လုပ်ဆောင်ခြင်း- pixel တန်ဖိုးများကို ၂၅၅ ဖြင့် ပိုင်းခြားခြင်းဖြင့် dataset ကို ပုံမှန်ဖြစ်စေသည်။
– မော်ဒယ်: ကျွန်ုပ်တို့သည် အလွှာနှစ်ခုပါသော ရိုးရှင်းသော မော်ဒယ်တစ်ခုကို သတ်မှတ်ပါသည်။ ပထမအလွှာသည် 2D ရုပ်ပုံကို 1D array အဖြစ်ပြောင်းလဲရန် `Flatten` layer ဖြစ်သည်။ ဒုတိယအလွှာသည် အာရုံကြောဆဲလ် ၁၂၈ ခုနှင့် activation function အဖြစ် `relu` ပါရှိသော `Dense` layer ဖြစ်ပြီး၊ နောက်ဆုံးအလွှာသည် အတန်း ၁၀ ခုကို ကိုယ်စားပြုသော အာရုံကြောဆဲလ် ၁၀ ခုပါရှိသော `Dense` layer ဖြစ်သည်။
– စုစည်းခြင်း: ကျွန်ုပ်တို့သည် `adam` optimizer နှင့် `SparseCategoricalCrossentropy` ကို loss function အဖြစ်အသုံးပြု၍ model ကို compile လုပ်ပါသည်။
– လေ့ကျင့်ခြင်း- မော်ဒယ်ကို ခေတ် ၅ ခုအတွက် လေ့ကျင့်ပါ။
– အကဲဖြတ်ခြင်း- မော်ဒယ်ကို စမ်းသပ်ဒေတာနှင့် နှိုင်းယှဉ်၍ အကဲဖြတ်ပါ။

ဖတ်ရန်  အသေးစားစီးပွားရေးလုပ်ငန်းများတွင် ကွန်ရက်လုံခြုံရေးအတွက် အကောင်းဆုံးလုပ်ဆောင်မှုများ

၆။ မော်ဒယ်များကို သိမ်းဆည်းခြင်းနှင့် တင်ခြင်း

မော်ဒယ်တစ်ခုကို လေ့ကျင့်ပြီးနောက်၊ ၎င်းကို ပြန်လည်လေ့ကျင့်ရန်မလိုဘဲ နောက်မှအသုံးပြုရန်အတွက် သိမ်းဆည်းလိုပေမည်။ မော်ဒယ်တစ်ခုကို မည်သို့သိမ်းဆည်းပြီး တင်ရမည်ကို ဤတွင်ဖော်ပြထားသည်။

“`စပါးအုံး
မော်ဒယ်ကို သိမ်းဆည်းခြင်း
မော်ဒယ်.သိမ်းဆည်းပါ('my_model.h5')

မော်ဒယ်ကို တင်နေသည်
မော်ဒယ်အသစ် = tf.keras.models.load_model('my_model.h5′)

တင်ထားသော မော်ဒယ်ကို အတည်ပြုနေသည်
ဆုံးရှုံးမှု၊ acc = new_model.evaluate(test_images, test_labels)
print(f'တင်ထားသော မော်ဒယ်၏ တိကျမှု- {acc}')
``

နိဂုံး

ဤလမ်းညွှန်ချက်သည် အစပြုသူများအတွက် TensorFlow ဖြင့် စတင်အသုံးပြုရန်အတွက် အသေးစိတ်မိတ်ဆက်ခြင်းကို ပေးပါသည်။ ကျွန်ုပ်တို့သည် ထည့်သွင်းခြင်း၊ အခြေခံ tensor လုပ်ဆောင်ချက်များနှင့် MNIST dataset ကို အသုံးပြု၍ ရိုးရှင်းသော neural network model တစ်ခုတည်ဆောက်ခြင်းတို့ကို ඉදිරියටත්ထားပါသည်။ TensorFlow သည် အဆင့်မြင့်ဒေတာလုပ်ဆောင်ခြင်း၊ ပိုမိုရှုပ်ထွေးသော မော်ဒယ်များနှင့် TPU များနှင့် GPU များကဲ့သို့သော စက်ပစ္စည်းများတွင် TensorFlow အသုံးပြုခြင်းကဲ့သို့သော စူးစမ်းလေ့လာရန် အဆင့်မြင့်စွမ်းရည်များစွာကို ပေးဆောင်ပါသည်။ ဤသင်ခန်းစာသည် TensorFlow ဖြင့် စက်သင်ယူမှုကမ္ဘာတွင် စတင်ရန် သင့်အား ကူညီပေးလိမ့်မည်ဟု မျှော်လင့်ပါသည်။

မှတ်ချက်ရေးပါ