تخفیف عضویت ویژه تا 24 اسفند


در این بخش با زیربنای تمام محاسبات علم داده آشنا خواهید شد. تنسور (Tensor) یک موجودیت پیچیده ریاضی است که کار با داده های چند بعدی را ممکن میسازد. هدف این مقاله اینست که درک جامعی از تنسورها و کاربردهای آن را به خواننده ارائه کند. به عنوان یک محقق، درک کامل تنسورها به شما اجازه میدهد که بتوانید با داده های پیچیده و مدل های کامپیوتری پیشرفته کار کنید.

 

# تنسور چیست؟

در ریاضیات، تنسور آبجکتی است که ماتریس ها و بردارها را به ابعاد بالاتر گسترش میدهد. حوزه های کامپیوتر، مهندسی و فیزیک به شدت به تنسورها وابسته هستند،‌ به ویژه وقتی صحبت از یادگیری ماشین و یادگیری عمیق میشود. به بیان ساده، تانسور آرایه ای از اعداد است که میتواند هر بعدی داشته باشد. رتبه (rank) تانسور تعداد ابعاد آن است.

 

رابطه tensor با دیگر آبجکت ها به شکل زیر است:

  1. هر اسکالر(scalar) یک عدد است که به آن تنسور با رتبه 0 گفته میشود. هر اسکالر را میتوانید به شکل s نمایش دهید.
     
  2. هر بردار(vector) یک آرایه یک بعدی از اعداد است که به آن تنسور با رتبه 1 گفته میشود. هر بردار را میتوانید به شکل v_i نمایش دهید که i ایندکس بردار است.
     
  3. هر ماتریس(matric) یک آرایه دوبعدی از اعداد است که به آن تنسور با رتبه 2 گفته میشود. هر ماتریس را میتوانید به شکل M_{ij} نمایش دهید که i و j ایندکس های آن هستند.
     
  4. هر تنسور(tensor) یک آرایه با ابعاد سه یا بالاتر است. میتوانید تنسور را به شکل T_{ijk…} نمایش دهید که i j k ... ایندکس های آن هستند.

 

# ویژگی های تنسور

تنسورها دارای چندین ویژگی مهم هستند که آنها را به ابزاری همه کاره و قدرتمند در زمینه های مختلف تبدیل می کند:

ابعاد (Dimension): تعداد ایندکس هایی که برای توصیف تنسور مورد نیاز است.

رتبه (Rank): تعداد ابعادی که تنسور دارد.

شکل (Shape): سایز هر بعد از تنسور را مشخص میکند. مثلا تنسوری با شکل (3, 4, 5) ابعادی با اندازه 3 و 4 و 5 دارد.

نوع (Type): نوع داده ای که در تنسور ذخیره شده است. تنسورها میتوانند داده های مختلفی مانند عدد صحیح یا اعشاری داخل خود ذخیره کنند.

 

# تنسور در ریاضیات

تنسورها در ریاضیات مفاهیمی مانند اسکالر،‌ بردار و ماتریس را به ابعاد بالاتر گسترش میدهند و انجام عملیات های پیچیده را ممکن میسازند. تنسور ها در زمینه های مختلفی مانند جبرخطی و دیفرانسیل مورد استفاده قرار میگیرند.

ماتریس M را در نظر بگیرید که دو بعد دارد:

    1 2
M = 3 4

داده های چند بعدی مانند یک تصویر رنگی که از سه رنگ RGB تشکیل شده است، میتواند توسط یک تنسور رتبه 3 نمایش داده شود.

تنسور در ریاضی

 

# تنسور در علوم کامپیوتر

تانسورها برای سازماندهی و تجزیه و تحلیل داده های چند بعدی در علوم کامپیوتر و یادگیری ماشین، به ویژه در فریمورک های یادگیری عمیق مانند PyTorch و TensorFlow بسیار مهم هستند. تنسورها داده های خامی که وارد شبکه های عصبی میشوند را در خود ذخیره میکنند. به عنوان مثال دسته ای از تصاویر را میتوان با یک تنسور به شکل  (batch size, height, width, channels) نمایش داد. همچنین میتوان برای ذخیره گسترده weight و bias از تنسورها استفاده کرد.

یک شبکه عصبی ساده با یک لایه ورودی، یک لایه پنهان و یک لایه خروجی را در نظر بگیرید. داده ها و پارامترهای هر لایه را میتوان به صورت تانسور نمایش داد:

import torch

# Input data: batch of 2 images, each 3x3 pixels with 3 color channels (RGB)
input_data = torch.tensor([[[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                            [[9, 8, 7], [6, 5, 4], [3, 2, 1]],
                            [[0, 0, 0], [1, 1, 1], [2, 2, 2]]],
                           [[[2, 3, 4], [5, 6, 7], [8, 9, 0]],
                            [[0, 9, 8], [7, 6, 5], [4, 3, 2]],
                            [[1, 2, 3], [4, 5, 6], [7, 8, 9]]]])

# Weights for a layer: assuming a simple fully connected layer
weights = torch.rand((3, 3, 3, 3))  # Random weights for demonstration

# Output after applying weights (simplified)
output_data = torch.matmul(input_data, weights)

print(output_data.shape)
# Output: torch.Size([2, 3, 3, 3])

در اینجا، input_data یک تانسور رتبه 4 است که دسته ای از دو تصویر RGB 3×3 را نشان می دهد. وزن ها نیز به صورت یک تانسور نشان داده می شوند و داده های خروجی پس از اعمال وزن ها در تانسور دیگری ذخیره میشوند.



0

intro

8:55

رایگان

1

tensor

17:33

رایگان

2

dataloader

25:18

5

GAN

19:4

6

discriminator

33:22

7

module

15:21

8

save

13:41

9

batch norm

21:40

10

DCGAN

31:35

11

wasserstein

16:50

12

critic

27:9

13

generator

17:18

14

cyclegan

21:28

15

albumentation

16:26

16

residual

18:2

17

autoencoder

32:3

18

tensorboard

25:24

19

kl divergence

12:27

20

VAE

37:25

21

nlp

30:9

22

lstm

36:45

23

topk

22:54

24

skorch

16:10

25

transformers

29:27

26

done

3:44

دوره های پیشنهادی

دوره آموزش asyncio در پایتون
دوره آموزش asyncio در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش CBV در جنگو
دوره آموزش CBV در جنگو
تکمیل ضبط
امیرحسین بیگدلو
آموزش پیشرفته جنگو - ساخت فروشگاه اینترنتی



ارسال نظر


فعلا نظری برای نمایش وجود ندارد
مونگارد