এমএল কমিউনিটি দিবস 9 নভেম্বর! TensorFlow, Jax থেকে আপডেটের জন্য আমাদের সাথে যোগ দিন, এবং আরও আরও জানুন

নতুনদের জন্য TensorFlow 2 কুইকস্টার্ট

TensorFlow.org এ দেখুন GitHub এ উৎস দেখুন নোটবুক ডাউনলোড করুন

এই সংক্ষিপ্ত ভূমিকা ব্যবহার Keras করুন:

  1. একটি পূর্বনির্ধারিত ডেটাসেট লোড করুন।
  2. একটি নিউরাল নেটওয়ার্ক মেশিন লার্নিং মডেল তৈরি করুন যা চিত্রগুলিকে শ্রেণীবদ্ধ করে।
  3. এই নিউরাল নেটওয়ার্ককে প্রশিক্ষণ দিন।
  4. মডেলের সঠিকতা মূল্যায়ন করুন।

এই টিউটোরিয়ালটি একটি হল গুগল Colaboratory নোটবুক। পাইথন প্রোগ্রামগুলি সরাসরি ব্রাউজারে চালানো হয় - টেনসরফ্লো শেখার এবং ব্যবহার করার একটি দুর্দান্ত উপায়। এই টিউটোরিয়ালটি অনুসরণ করতে, এই পৃষ্ঠার উপরের বোতামে ক্লিক করে গুগল কোলাবে নোটবুকটি চালান।

  1. Colab, একটি পাইথন রানটাইম সাথে সংযোগ করুন: মেনু বার উপরের ডান দিকে, সংযুক্ত নির্বাচন করুন।
  2. সব নোটবুক কোড কোষ চালান: রানটাইম নির্বাচন করুন> সব চালান।

TensorFlow সেট আপ করুন

শুরু করার জন্য আপনার প্রোগ্রামে TensorFlow আমদানি করুন:

import tensorflow as tf
print("TensorFlow version:", tf.__version__)
TensorFlow version: 2.6.0

আপনি আপনার নিজের উন্নয়ন পরিবেশ বদলে মধ্যে বরাবর অনুসরণ করছেন তাহলে Colab দেখুন ইনস্টল নির্দেশিকা উন্নয়নে TensorFlow স্থাপনের জন্য।

একটি ডেটাসেট লোড করুন

লোড এবং প্রস্তুত MNIST ডেটা সেটটি । পূর্ণসংখ্যা থেকে নমুনা ডেটাকে ভাসমান-বিন্দু সংখ্যায় রূপান্তর করুন:

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
11493376/11490434 [==============================] - 0s 0us/step
11501568/11490434 [==============================] - 0s 0us/step

একটি মেশিন লার্নিং মডেল তৈরি করুন

একটি বিল্ড tf.keras.Sequential স্তর সারিবদ্ধ দ্বারা মডেল।

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10)
])

প্রতিটি উদাহরণস্বরূপ, মডেল একটি ভেক্টর ফেরৎ logits বা লগ-মতভেদ স্কোর, প্রতিটি বর্গ জন্য।

predictions = model(x_train[:1]).numpy()
predictions
array([[ 0.74148655, -0.39261633,  0.08016336, -0.46431944,  0.21458861,
         0.31183302,  0.7555975 ,  0.80728006, -0.6296631 , -0.4926056 ]],
      dtype=float32)

tf.nn.softmax ফাংশন প্রতিটি বর্গ জন্য সম্ভাব্যতা এইসব logits পরিবর্তন করে:

tf.nn.softmax(predictions).numpy()
array([[0.16651046, 0.05356818, 0.08594736, 0.04986165, 0.09831339,
        0.10835411, 0.16887674, 0.1778342 , 0.04226285, 0.04847102]],
      dtype=float32)

ব্যবহার প্রশিক্ষণ জন্য একটি ক্ষতি ফাংশন নির্ধারণ losses.SparseCategoricalCrossentropy , যা logits একটি ভেক্টর এবং লাগে True সূচক এবং প্রতিটি উদাহরণস্বরূপ একটি স্কেলার ক্ষতি ফেরৎ।

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

এই ক্ষতি প্রকৃত শ্রেণীর নেতিবাচক লগ সম্ভাবনার সমান: মডেলটি সঠিক শ্রেণীর ব্যাপারে নিশ্চিত হলে ক্ষতি শূন্য।

এই আনকোরা মডেল, বন্ধ র্যান্ডম করার জন্য (1/10 প্রতিটি বর্গ জন্য) সম্ভাব্যতা দেয় তাই প্রাথমিক ক্ষয় বন্ধ হবে -tf.math.log(1/10) ~= 2.3

loss_fn(y_train[:1], predictions).numpy()
2.2223506

আগে আপনি প্রশিক্ষণ, কনফিগার শুরু করা এবং Keras ব্যবহার মডেল কম্পাইল Model.compile । সেট optimizer থেকে বর্গ adam , সেট loss করার loss_fn ফাংশন আপনি আগে সংজ্ঞায়িত, এবং সেটিং দ্বারা উল্লেখ একটি মেট্রিক মডেল জন্য মূল্যায়ন করা metrics থেকে প্যারামিটার accuracy

model.compile(optimizer='adam',
              loss=loss_fn,
              metrics=['accuracy'])

আপনার মডেলকে প্রশিক্ষণ দিন এবং মূল্যায়ন করুন

ব্যবহার করুন Model.fit আপনার মডেল পরামিতি সমন্বয় ও ক্ষতি কমানোর জন্য পদ্ধতি:

model.fit(x_train, y_train, epochs=5)
Epoch 1/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2956 - accuracy: 0.9137
Epoch 2/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1430 - accuracy: 0.9572
Epoch 3/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1059 - accuracy: 0.9682
Epoch 4/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.0870 - accuracy: 0.9736
Epoch 5/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.0732 - accuracy: 0.9774
<keras.callbacks.History at 0x7fabfe6f6cd0>

Model.evaluate পদ্ধতি চেক মডেল কর্মক্ষমতা, সাধারণত একটি "এ ভ্যালিডেশন সেট " বা " টেস্ট সেট "।

model.evaluate(x_test,  y_test, verbose=2)
313/313 - 0s - loss: 0.0771 - accuracy: 0.9756
[0.07707860320806503, 0.975600004196167]

ইমেজ ক্লাসিফায়ার এখন এই ডেটাসেটে ~ 98% নির্ভুলতার জন্য প্রশিক্ষিত। আরো জানতে, পড়তে TensorFlow টিউটোরিয়াল

আপনি যদি চান যে আপনার মডেলটি একটি সম্ভাব্যতা ফিরিয়ে আনতে পারে, তাহলে আপনি প্রশিক্ষিত মডেলটি মোড়ানো এবং এটিতে সফটম্যাক্স সংযুক্ত করতে পারেন:

probability_model = tf.keras.Sequential([
  model,
  tf.keras.layers.Softmax()
])
probability_model(x_test[:5])
<tf.Tensor: shape=(5, 10), dtype=float32, numpy=
array([[9.35628634e-07, 1.90160367e-08, 2.08603578e-05, 3.36712168e-04,
        3.99928729e-10, 3.29815066e-07, 1.11730861e-12, 9.99547541e-01,
        5.78590800e-07, 9.29015441e-05],
       [9.06768847e-08, 1.75887300e-03, 9.98239040e-01, 1.42416525e-06,
        2.24498985e-14, 1.93019602e-07, 4.19461571e-07, 1.78353019e-14,
        1.09490275e-08, 3.30677152e-15],
       [1.80358853e-07, 9.99705374e-01, 4.36524460e-05, 7.87066620e-06,
        6.60410151e-05, 1.29832119e-06, 2.66996949e-06, 5.51502962e-05,
        1.15344104e-04, 2.45894512e-06],
       [9.99937892e-01, 1.82150364e-10, 2.67099913e-05, 1.87603248e-07,
        2.81131548e-07, 1.86480634e-06, 2.33697901e-05, 1.97653662e-07,
        3.29448504e-08, 9.38197445e-06],
       [1.53162068e-06, 2.57238808e-09, 2.05853598e-06, 2.75526531e-07,
        9.93477166e-01, 2.57349512e-07, 3.59538944e-06, 9.20545644e-05,
        1.77590653e-06, 6.42123120e-03]], dtype=float32)>

উপসংহার

অভিনন্দন! আপনি ব্যবহার করে একটি prebuilt ডেটা সেটটি ব্যবহার করে একটি মেশিন লার্নিং মডেল প্রশিক্ষণ Keras API- টি।

Keras ব্যবহার আরো উদাহরণের জন্য, চেক আউট টিউটোরিয়াল । Keras সঙ্গে মডেল নির্মাণের বিষয়ে আরো জানতে পড়তে গাইড । আপনি লোড হচ্ছে এবং ডেটা প্রস্তুতি সম্পর্কে আরো জানতে চান, উপর টিউটোরিয়াল দেখুন ইমেজ তথ্য লোড বা CSV তে ডেটা লোড