05-07-2020، 14:49
تنسور (به انگلیسی: Tensor) عنصری هندسی است که در ریاضی و فیزیک به منظور گسترش مفاهیم اسکالرها، بردارها و ماتریسها به ابعاد بالاتر معرفی میشوند. تنسورها اولین بار توسط تولیو لوی-چیویتا و گرگریو ریتچی-کورباسترو ابداع شدند. در واقع کار آنها ادامه کارهای برنهارت ریمان و الوین برونو کریستوفل و دیگران در حساب دیفرانسیل مطلق بود.
تنسور آرایهای است از اعداد که در یک جدول چیده شدهاند. این جدول در حالت کلی میتواند به صورت {\displaystyle M\times N\times O\times P\times ...}{\displaystyle M\times N\times O\times P\times ...} باشد که حروف بزرگ هر کدام میتوانند نمایندهٔ یک عدد طبیعی باشند و {\displaystyle \times }{\displaystyle \times } نشان دهندهٔ عمل ضرب بین آنهاست. تنسور در سادهترین حالت میتواند یک عضو داشته باشد که به آن تنسور، اسکالر گوییم. در حالت کمی پیشرفته تر تنسور میتواند به صورت بردار باشد. یعنی وقتی شما بردار {\displaystyle A}A را به صورت {\displaystyle (x,y,z)}{\displaystyle (x,y,z)} نشان میدهید در حقیقت یک تنسور دارید. در حالتی باز هم پیشرفته تر تنسور میتواند دو بعدی باشد (به صورت ماتریسی). یعنی مثلاً جدول ما {\displaystyle 2\times 2}{\displaystyle 2\times 2} باشد یعنی دو سطر و دو ستون داشته باشد.
چنین تنسوری دارای ۴ عضو است. بهطور کلی تنسورهای دو بعدی و بالاتر از دو بعد را با نام ماتریس هم میشناسند. ماتریسها از آن جهت مورد استفاده قرار میگیرند که باعث ایجاد نظم بین دادههای یک مسئله و دسته بندی اطلاعات آن میشوند.
تعریف فوق همراه با سادهسازی است. یک تعریف دقیقتر از این قرار است:
یک تنسور رتبه (۰,۱) و {\displaystyle N}N-بعدی حقیقی مانند {\displaystyle T}T نگاشتی است خطی از {\displaystyle \mathbb {R} ^{N}}{\displaystyle \mathbb {R} ^{N}} به {\displaystyle \mathbb {R} }{\mathbb {R}} یعنی معاذله تنسور ها.
در سالهای اخیر به منظور سهولت استفاده از تنسورها و همچنین پردازش سریع آنها، کتابخانههایی برای استفاده در زبانهای برنامهنویسی توسعه داده شدهاند. از این جمله میتوان به تنسورفلو (TensorFlow) اشاره کرد.[۱]. همچنین گوگل مدار مجتمع با کاربرد خاصی را با نام واحد پردازشگر تانسوری (به اختصار: TPU) جهت انجام بهینه و سریعتر محاسبات تانسوری برای شبکههای عصبی گسترش داده است.
تنسور آرایهای است از اعداد که در یک جدول چیده شدهاند. این جدول در حالت کلی میتواند به صورت {\displaystyle M\times N\times O\times P\times ...}{\displaystyle M\times N\times O\times P\times ...} باشد که حروف بزرگ هر کدام میتوانند نمایندهٔ یک عدد طبیعی باشند و {\displaystyle \times }{\displaystyle \times } نشان دهندهٔ عمل ضرب بین آنهاست. تنسور در سادهترین حالت میتواند یک عضو داشته باشد که به آن تنسور، اسکالر گوییم. در حالت کمی پیشرفته تر تنسور میتواند به صورت بردار باشد. یعنی وقتی شما بردار {\displaystyle A}A را به صورت {\displaystyle (x,y,z)}{\displaystyle (x,y,z)} نشان میدهید در حقیقت یک تنسور دارید. در حالتی باز هم پیشرفته تر تنسور میتواند دو بعدی باشد (به صورت ماتریسی). یعنی مثلاً جدول ما {\displaystyle 2\times 2}{\displaystyle 2\times 2} باشد یعنی دو سطر و دو ستون داشته باشد.
چنین تنسوری دارای ۴ عضو است. بهطور کلی تنسورهای دو بعدی و بالاتر از دو بعد را با نام ماتریس هم میشناسند. ماتریسها از آن جهت مورد استفاده قرار میگیرند که باعث ایجاد نظم بین دادههای یک مسئله و دسته بندی اطلاعات آن میشوند.
تعریف فوق همراه با سادهسازی است. یک تعریف دقیقتر از این قرار است:
یک تنسور رتبه (۰,۱) و {\displaystyle N}N-بعدی حقیقی مانند {\displaystyle T}T نگاشتی است خطی از {\displaystyle \mathbb {R} ^{N}}{\displaystyle \mathbb {R} ^{N}} به {\displaystyle \mathbb {R} }{\mathbb {R}} یعنی معاذله تنسور ها.
در سالهای اخیر به منظور سهولت استفاده از تنسورها و همچنین پردازش سریع آنها، کتابخانههایی برای استفاده در زبانهای برنامهنویسی توسعه داده شدهاند. از این جمله میتوان به تنسورفلو (TensorFlow) اشاره کرد.[۱]. همچنین گوگل مدار مجتمع با کاربرد خاصی را با نام واحد پردازشگر تانسوری (به اختصار: TPU) جهت انجام بهینه و سریعتر محاسبات تانسوری برای شبکههای عصبی گسترش داده است.