TensorFlow হল Google দ্বারা প্রদত্ত একটি মেশিন লার্নিং ফ্রেমওয়ার্ক। এটি একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা পাইথনের সাথে ব্যবহার করে অ্যালগরিদম, ডিপ লার্নিং অ্যাপ্লিকেশন ইত্যাদি বাস্তবায়ন করতে ব্যবহৃত হয়। এটি গবেষণা এবং প্রোডাকশন উভয় উদ্দেশ্যে ব্যবহৃত হয়।
এতে অপ্টিমাইজেশন কৌশল রয়েছে যা জটিল গাণিতিক অপারেশন দ্রুত সম্পাদনে সাহায্য করে। কারণ এটি NumPy এবং মাল্টি-ডাইমেনশনাল অ্যারে ব্যবহার করে। এই মাল্টি-ডাইমেনশনাল অ্যারeket 'টেনসর' (tensors) বলা হয়। ফ্রেমওয়ার্কটি ডিপ নিউরাল নেটওয়ার্কের সাথে কাজ করার সুবিধা দেয়। এটি অত্যন্ত স্কেলেবল এবং অনেক জনপ্রিয় ডেটাসেটের সাথে আসে। এটি GPU কম্পিউটেশন ব্যবহার করে এবং রিসোর্স ম্যানেজমেন্ট অটোমেট করে।
ইনস্টলেশন
pip install tensorflow
টেনসর (Tensor) TensorFlow-এ ব্যবহৃত একটি ডেটা স্ট্রাকচার। এটি ফ্লো ডায়াগ্রামে এজ সংযুক্ত করতে সাহায্য করে। এই ফ্লো ডায়াগ্রামকে 'ডেটা ফ্লো গ্রাফ' বলা হয়। টেনসরগুলো আসলে মাল্টি-ডাইমেনশনাল অ্যারে বা লিস্ট। এদের তিনটি প্রধান অ্যাট্রিবিউট দিয়ে চেনা যায়:
- র্যাঙ্ক (Rank) — টেনসরের ডাইমেনশনালিটি বা ডাইমেনশনের সংখ্যা নির্দেশ করে।
- টাইপ (Type) — টেনসরের এলিমেন্টগুলোর ডেটা টাইপ নির্দেশ করে।
- শেপ (Shape) — সারি ও কলামের সংখ্যা মিলিয়ে নির্দেশ করে।
নিচের কোড Google Colaboratory-এ রান করা হয়েছে। Google Colab ব্রাউজারে পাইথন কোড চালাতে সাহায্য করে এবং ফ্রি GPU অ্যাক্সেস দেয়। Colaboratory Jupyter Notebook-এর ওপর তৈরি।
উদাহরণ
print("A bag-of-words linear model is built to train the stackoverflow dataset")
binary_model = tf.keras.Sequential([layers.Dense(4)])
binary_model.compile(
loss=losses.SparseCategoricalCrossentropy(from_logits=True),
optimizer='adam',
metrics=['accuracy'])
history = binary_model.fit(
binary_train_ds, validation_data=binary_val_ds, epochs=10)
কোড ক্রেডিট: https://www.tensorflow.org/tutorials/load_data/text
আউটপুট
A bag-of-words linear model is built to train the stackoverflow dataset Epoch 1/10 188/188 [==============================] - 4s 19ms/step - loss: 1.2450 - accuracy: 0.5243 - val_loss: 0.9285 - val_accuracy: 0.7645 Epoch 2/10 188/188 [==============================] - 1s 3ms/step - loss: 0.8304 - accuracy: 0.8172 - val_loss: 0.7675 - val_accuracy: 0.7895 Epoch 3/10 188/188 [==============================] - 1s 3ms/step - loss: 0.6615 - accuracy: 0.8625 - val_loss: 0.6824 - val_accuracy: 0.8050 Epoch 4/10 188/188 [==============================] - 1s 3ms/step - loss: 0.5604 - accuracy: 0.8833 - val_loss: 0.6291 - val_accuracy: 0.8125 Epoch 5/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4901 - accuracy: 0.9034 - val_loss: 0.5923 - val_accuracy: 0.8210 Epoch 6/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4370 - accuracy: 0.9178 - val_loss: 0.5656 - val_accuracy: 0.8255 Epoch 7/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3948 - accuracy: 0.9270 - val_loss: 0.5455 - val_accuracy: 0.8290 Epoch 8/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3601 - accuracy: 0.9325 - val_loss: 0.5299 - val_accuracy: 0.8295 Epoch 9/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3307 - accuracy: 0.9408 - val_loss: 0.5177 - val_accuracy: 0.8335 Epoch 10/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3054 - accuracy: 0.9472 - val_loss: 0.5080 - val_accuracy: 0.8340
ব্যাখ্যা
- নিউরাল নেটওয়ার্ক 'Sequential' API ব্যবহার করে তৈরি করা হয়েছে।
- 'binary' ফরম্যাটে ভেক্টরাইজড ডেটার জন্য ব্যাগ-অফ-ওয়ার্ডস মডেল ট্রেন করা হয়েছে, যা একটি লিনিয়ার মডেল।