تنسور چیست
آگوست 18, 2023مقدمه ای بر Tensor & TensorFlow
آگوست 19, 2023تنسور در یادگیری عمیق
چه چیزی یاد خواهید گرفت؟
تانسورها
ویژگی های کلیدی تانسور
نمونه های دنیای واقعی تنسورها
تنسور چیست؟
این محفظه ای از داده است که به ذخیره ابعاد مختلف داده در شبکه های عصبی کمک می کند کتابخانه یادگیری ماشین گوگل TensorFlow به نام آنها نامگذاری شد.
تانسورهای اسکالر یا رتبه 0 یا 0-D
تانسوری که فقط یک عدد داشته باشد اسکالر نامیده می شود.
یک تانسور اسکالر دارای 0 محور است (ndim == 0)
تعداد محورها را رتبه ای از تانسور می گویند.
ignition = tf.Variable(451, tf.int16)
floating = tf.Variable(3.14159265359, tf.float64)
its_complicated = tf.Variable(12.3–4.85j, tf.complex64)
بردار یا تانسورهای رتبه 1 یا 1 بعدی
آرایه ای از اعداد را بردار یا تانسور 1 بعدی می نامند.
mystr = tf.Variable([“Hello”], tf.string)
cool_numbers = tf.Variable([3.14159, 2.71828], tf.float32)
first_primes = tf.Variable([2, 3, 5, 7, 11], tf.int32)
its_very_complicated = tf.Variable([12.3–4.85j, 7.5–6.23j], tf.complex64)
ماتریس یا تانسور رتبه ۲ یا ۲ بعدی
آرایه ای از بردارها یک ماتریس یا تانسور دو بعدی است
از دو محور، ردیف و ستون تشکیل شده است
mymat = tf.Variable([[7],[11]], tf.int16)
myxor = tf.Variable([[False, True],[True, False]], tf.bool)
تانسور سه بعدی و تانسور بعدی بالاتر
اگر چنین ماتریس هایی را در یک آرایه جدید بسته بندی کنید، یک تانسور سه بعدی به دست می آورید.
با بسته بندی تانسورهای سه بعدی در یک آرایه، می توانید یک تانسور 4 بعدی و غیره ایجاد کنید.
mymat = tf.Variable([[7],[11]], tf.int16)
myxor = tf.Variable([[False, True],[True, False]], tf.bool)
linear_squares = tf.Variable([[4], [9], [16], [25]], tf.int32)
squarish_squares = tf.Variable([ [4, 9], [16, 25] ], tf.int32)
rank_of_squares = tf.rank(squarish_squares)
mymatC = tf.Variable([[7],[11]], tf.int32)
ویژگی های کلیدی تنسورها
تعداد محورها (رتبه)
شکل : این چند عدد از اعداد صحیح است که نشان می دهد تانسور چند بعد در امتداد هر محور دارد.
نوع داده (dtype): این نوع داده های موجود در تانسور است به عنوان مثال: float32، uint8، float64 و غیره.
نمونه های دنیای واقعی تنسورها
- داده های برداری: تانسورهای دوبعدی شکل (نمونه ها، ویژگی ها)
- داده های سری زمانی یا داده های توالی: تانسورهای سه بعدی شکل (نمونه ها، مراحل زمانی، ویژگی ها)
- تصاویر: تانسورهای شکل 4 بعدی (نمونه ها، ارتفاع، عرض، کانال ها)
- فیلم های: تانسورهای شکل 5 بعدی (نمونه ها، فریم ها، ارتفاع، عرض، کانال ها)
داده های برداری
این آرایه ای از بردارها است، که در آن محور اول، محور نمونه ها (ابعاد نمونه) و محور دوم، محور ویژگی ها است.
(نمونه ها، ویژگی ها)
مثال:
مجموعه داده آماری افراد، که در آن سن، کد پستی و درآمد هر فرد را در نظر می گیریم. هر فرد را می توان به عنوان یک بردار از 3 مقدار مشخص کرد، و بنابراین کل مجموعه داده 100000 نفر را می توان در یک تانسور 2 بعدی شکل (100000، 3) ذخیره کرد.
داده های سری زمانی یا توالی
هر زمان که زمان در داده های شما اهمیت دارد (یا مفهوم ترتیب توالی)، منطقی است که آن را در یک تانسور سه بعدی با یک محور زمانی صریح ذخیره کنید.
(نمونه ها، مراحل زمانی، ویژگی ها)
مثال: مجموعه داده ای از قیمت سهام. هر دقیقه، قیمت فعلی سهام، بالاترین قیمت در دقیقه گذشته و پایین ترین قیمت در دقیقه گذشته را ذخیره می کنیم. بنابراین هر دقیقه به عنوان یک بردار 3 بعدی کدگذاری می شود، کل یک روز معامله به صورت یک تانسور دو بعدی شکل (390، 3) کدگذاری می شود (390 دقیقه در یک روز معاملاتی وجود دارد)، و داده های 250 روزه را می توان در آن ذخیره کرد. یک تانسور سه بعدی شکل (250,390, 3). در اینجا، هر نمونه به اندازه یک روز داده خواهد بود.
داده های تصویری
تصاویر معمولاً سه بعد دارند: ارتفاع، عرض و عمق رنگ.
تصاویر در مقیاس خاکستری فقط شامل یک کانال هستند.
RGB Images دارای سه کانال رنگی است.
(نمونه ها، ارتفاع، عرض، کانال ها)
مثال ها:
بنابراین، یک دسته از 128 تصویر خاکستری با اندازه 256 × 256 را می توان در یک تانسور شکل (128، 256، 256، 1) و یک دسته از 128 تصویر رنگی را می توان در یک تانسور شکل (128، 256،) ذخیره کرد. 256، 3)
تصاویر RGB: (128، 256، 256، 3)
تصاویر در مقیاس خاکستری : (128، 256، 256، 1)
داده های ویدیویی
داده های ویدئویی یکی از معدود انواع داده های دنیای واقعی است که برای آن به تانسورهای 5 بعدی نیاز دارید. یک ویدیو را می توان به عنوان دنباله ای از فریم ها درک کرد که هر فریم یک تصویر رنگی است. از آنجایی که هر فریم را می توان در یک تانسور سه بعدی (ارتفاع، عرض، رنگ عمق) ذخیره کرد، دنباله ای از فریم ها را می توان در یک تانسور 4 بعدی (فریم ها، ارتفاع، عرض، رنگعمق) ذخیره کرد، و بنابراین دسته ای از فیلم های مختلف را می توان در آن ذخیره کرد. یک تانسور 5 بعدی شکل (نمونه ها، فریم ها، ارتفاع، عرض، رنگ_عمق).
به عنوان مثال، یک کلیپ ویدیویی 60 ثانیه ای 144 × 256 یوتیوب که با سرعت 4 فریم بر ثانیه نمونه برداری می شود، 240 فریم خواهد داشت. یک دسته از چهار کلیپ ویدیویی از این قبیل در یک تانسور شکل ذخیره می شود (4، 240، 144، 256، 3). این در مجموع 106,168,320 مقدار است! اگر نوع d تانسور float32 بود، هر مقدار در 32 بیت ذخیره می شد، بنابراین تانسور نشان دهنده 405 مگابایت خواهد بود. سنگین! ویدیوهایی که در زندگی واقعی با آنها روبرو می شوید بسیار سبک تر هستند، زیرا در float32 ذخیره نمی شوند و معمولاً با یک فاکتور بزرگ (مانند فرمت MPEG) فشرده می شوند.