TensorFlow یک چارچوب یادگیری ماشین (Machine Learning) باز کد است که توسط گوگل توسعه یافته است. این چارچوب برای ایجاد و آموزش مدلهای یادگیری عمیق (Deep Learning) و سایر الگوریتمهای یادگیری ماشین طراحی شده است. TensorFlow به دلیل انعطافپذیری، قدرت محاسباتی بالا و پشتیبانی از سختافزارهای مختلف (مانند GPU و TPU) به یکی از پرکاربردترین ابزارها در حوزه یادگیری ماشین تبدیل شده است.
ویژگیهای اصلی TensorFlow:
Tensorها (Tensors):
دادههای اصلی در TensorFlow به صورت چند بعدی (مانند ماتریسها) ذخیره میشوند که به آنها "Tensor" گفته میشود. مثلاً یک عدد یک بعدی، یک ماتریس دو بعدی، یا یک تصویر سه بعدی میتواند یک Tensor باشد.
گرافهای محاسباتی (Computational Graphs):
در نسخههای قدیمی (TensorFlow 1.x)، مدلها به صورت یک گراف جهتدار ایجاد میشدند که هر گره آن یک عملیات (Operation) و هر لبه آن دادهای (Tensor) بود. اما در نسخههای جدید (TensorFlow 2.x)، این ویژگی به طور پیشفرض غیرفعال شده و به جای آن "Eager Execution" (اجرای فوری) استفاده میشود.
پشتیبانی از GPU/TPU:
TensorFlow به طور طبیعی از کارتهای گرافیکی (GPU) و واحدهای پردازشی تخصصی (TPU) گوگل پشتیبانی میکند که باعث افزایش سرعت محاسبات میشود.
APIهای بالا (High-Level APIs):
TensorFlow شامل کتابخانههایی مانند Keras (برای ساخت مدلهای یادگیری عمیق)، TensorFlow Estimators (برای مدلهای آماده)، و TensorFlow Lite (برای اجرا روی دستگاههای موبایل) است.
انواع مدلها:
میتوانید مدلهایی مانند شبکههای عصبی مصنوعی (ANN)، شبکههای عصبی چند لایه (MLP)، شبکههای عصبی کانولوشنی (CNN)، شبکههای عصبی بازگشتی (RNN)، و مدلهای پیچیدهتر مانند GANها و Transformerها را با استفاده از TensorFlow ایجاد کنید.
نصب TensorFlow در Python:
برای نصب TensorFlow، میتوانید از pip استفاده کنید:
pip install tensorflow
اگر نیاز به پشتیبانی از GPU دارید، باید نسخه GPU را نصب کنید:
pip install tensorflow-gpu
مثال ساده: یک مدل خطی (Linear Regression) با TensorFlow
import tensorflow as tf
# دادههای نمونه
X = tf.constant([1, 2, 3, 4], dtype=tf.float32)
y = tf.constant([2, 4, 6, 8], dtype=tf.float32)
# پارامترهای مدل (وزن و بیس)
W = tf.Variable(0.0, dtype=tf.float32)
b = tf.Variable(0.0, dtype=tf.float32)
# تابع مدل
def model(X):
return W * X + b
# تابع از دست دادن (Loss Function)
def loss(y_true, y_pred):
return tf.reduce_mean(tf.square(y_true - y_pred))
# بهروزرسانی پارامترها با استفاده از گرادیان کاهشی (Gradient Descent)
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)
# آموزش مدل
for epoch in range(1000):
with tf.GradientTape() as tape:
y_pred = model(X)
current_loss = loss(y, y_pred)
gradients = tape.gradient(current_loss, [W, b])
optimizer.apply_gradients(zip(gradients, [W, b]))
# نتیجه
print("وزن (W):", W.numpy())
print("بیس (b):", b.numpy())
کاربردهای TensorFlow:
- پردازش زبان طبیعی (NLP): مانند ترجمه ماشینی و تحلیل احساس.
- پردازش تصویر: تشخیص تصویر، کلاسبندی، و تولید تصویر.
- یادگیری عمیق: شبکههای عصبی عمیق (Deep Neural Networks).
- پیشبینی و تحلیل داده: مانند پیشبینی قیمت سهام یا تحلیل دادههای پزشکی.
منابع یادگیری:
- TensorFlow.org
- کتابخانههای Keras و TensorFlow Playground (برای آموزش گرافیکی).
- دورههای آنلاین مانند Coursera و Udemy.