Ինչպե՞ս կտրատել 3D Tensor-ը Pytorch-ում:


Python-ում 3D Tensor-ը հայտնի է իր մատրիցների զանգվածով, մինչդեռ 1D և 2D Tensor-ը համապատասխանաբար ներկայացնում է վեկտորը և մատրիցը: Pytorch-ը սահմանվում է մեքենայական ուսուցման շրջանակի բաց կոդով մոդուլով, որը հիմնված է Python ծրագրավորման վրա, և այն տրամադրում է torch անունով մոդուլը: Python-ում մենք ունենք որոշ ներկառուցված ֆունկցիաներ, ինչպիսիք են randn(), rand() և split(), որոնք կարող են օգտագործվել Pytorch-ում 3D թենզորի հատվածը ներկայացնելու համար:

Շարահյուսություն

Հետևյալ շարահյուսությունն օգտագործվում է օրինակներում −

import torch

Սա Python մոդուլ է, որը պարունակում է բոլոր նեյրոնային ցանցերի բազային դասը: Այն օգնում է կառուցել և վարժեցնել նեյրոնային ցանցը, ինչպիսիք են մուտքագրումը, ելքը և թաքնվածը:

randn() 

Սա numpy գրադարանի ներկառուցված ֆունկցիա է, որը կարող է օգտագործվել զանգվածից պատահական նմուշը ստանդարտ նորմալ բաշխման համար սահմանելու համար:

rand()

Սա Python-ի ներկառուցված ֆունկցիան է, որը ստեղծում է կեղծ պատահական թվեր:

split()

Սա Python-ում ներկառուցված մեթոդ է, որը ներկայացնում է տողերի փոխարկումը ցուցակի մեջ:

Տեղադրման պահանջ

pip install torch

Այս մոդուլն օգնում է գործարկել ծրագիրը՝ հիմնված 1D, 2D և 3D Tensor-ի վրա:

Օրինակ 1

Հետևյալ օրինակում մենք կսկսենք ծրագիրը՝ ներմուծելով ջահի մոդուլը: Այնուհետև օգտագործեք randn() անունով ներկառուցված մեթոդը, որը հետևում է torch մոդուլին և ընդունում է որոշ ամբողջ թիվ որպես պարամետր զանգվածի միջին ստանդարտը բաշխելու համար: ցանկը և պահում է այն a փոփոխականում: Այնուհետև շարունակաբար սկզբնավորեք երեք փոփոխականներ՝ b, c և, d, որոնք կկտրեն չափը՝ պահպանելով դրա տարրը: Այնուհետև օգտագործեք տպման գործառույթը՝ բոլոր փոփոխականները մեկը մյուսի հետևից դնելու և արդյունքը ստանալու համար:

import torch
a = torch.randn(1,2,3)

# Slicing of the first dimension by keeping the first element
b = x[0:1,:,:]

# Slicing of the second dimension by keeping the second element
c = x[:,0:2,:]

# Slicing of the third dimension by keeping the third element
d = x[:,:,-2:]
print(a)
print(b)
print(c)
print(d)

Արդյունք

tensor([[[ 0.1352, -0.8739, -1.5743],
         [-0.4853,  0.7519,  0.9749]]])
tensor([[[-0.7441,  0.3385, -1.0671,  1.0431],
         [ 0.2104, -0.3083,  1.1756,  0.3387],
         [ 0.8722,  0.4534,  0.5528, -0.3567]]])
tensor([[[-0.7441,  0.3385, -1.0671,  1.0431],
         [ 0.2104, -0.3083,  1.1756,  0.3387]],

        [[ 0.6623,  1.3858, -1.0033, -0.5977],
         [ 1.1141, -0.8058,  1.5914,  0.6476]]])
tensor([[[-1.0671,  1.0431],
         [ 1.1756,  0.3387],
         [ 0.5528, -0.3567]],

        [[-1.0033, -0.5977],
         [ 1.5914,  0.6476],
         [ 1.6480, -0.9212]]])

Օրինակ 2

Հետևյալ օրինակում սկսեք ծրագիրը՝ ներմուծելով ջահի մոդուլը: Այնուհետև պահեք երեք զանգվածների ընդհանուր ցուցակը tensor_3d փոփոխականում: Հաջորդը, ցուցակի 0-րդ ինդեքսը պահեք փոփոխական թենզորում: Նույն կերպ, list1-ը և list2-ը պահվում են համապատասխանաբար tensor1 և tensor2 փոփոխականներում: Այնուհետև տպեք արդյունքը բոլոր թենզոր փոփոխականների օգնությամբ։

import torch
tensor_3d = ([[[10, 20, 30, 40],[50, 60, 70, 80],[1, 2, 3, 4]],
   [[13, 14, 15, 16],[21, 22, 23, 24], [3, 4, 5, 6]],
   [[61, 62, 63, 64],[71, 72, 73, 74],[7, 8, 9, 10]]])
tensor = tensor_3d[0]
tensor1 = tensor_3d[1]
tensor2 = tensor_3d[2]
print("The first dimension:",tensor)
print("The second dimension:",tensor1)
print("The third dimension:",tensor2)

Արդյունք

The first dimension: [[10, 20, 30, 40], [50, 60, 70, 80], [1, 2, 3, 4]]
The second dimension: [[13, 14, 15, 16], [21, 22, 23, 24], [3, 4, 5, 6]]
The third dimension: [[61, 62, 63, 64], [71, 72, 73, 74], [7, 8, 9, 10]]

Օրինակ 3

Հետևյալ օրինակում սկսեք ծրագիրը ներմուծելով անհրաժեշտ մոդուլը, որը կոչվում է torch և random, որը կստեղծի պատահական արժեքներով մատրիցների զանգված: Այնուհետև torch.rand((3, 4, 8))-ը ստեղծում է պատահական արժեքներ 0-ի և 1-ի միջև և պահում այն x փոփոխականում: Այնուհետև, torch.split()-ն ընդունում է երեք պարամետր՝ x, 3 և, 2, որոնք սահմանում են x-ի տենզորը հատվածների երրորդ չափման երկայնքով (2)՝ յուրաքանչյուր հատվածի համար 3 չափով և պահում այն փոփոխական հատվածներում: Ի վերջո, մենք տպում ենք արդյունքը փոփոխական շերտերի օգնությամբ:

Նկատի ունեցեք, որ chunk-ը վերաբերում է ավելի փոքր տենզորին, որը ստեղծվել է սկզբնական թենզորը որոշակի հարթության վրա բաժանելով:

import torch
import random

# generate the random values between 0 and 1
x = torch.rand((3,4,8))
slices = torch.split(x, 3, 2)
print(slices)

Արդյունք

(tensor([[[0.3747, 0.4710, 0.4233, 0.2445],
         [0.9414, 0.6634, 0.6091, 0.8761],
         [0.7911, 0.8687, 0.8468, 0.8766],
         [0.8192, 0.1498, 0.7685, 0.4718]],

        [[0.4160, 0.7172, 0.4647, 0.4860],
         [0.7074, 0.9610, 0.4967, 0.7411],
         [0.2269, 0.8565, 0.8671, 0.3461],
         [0.0397, 0.0809, 0.2017, 0.1106]],

        [[0.6528, 0.7044, 0.7829, 0.1844],
         [0.4297, 0.2802, 0.4159, 0.4485],
         [0.5843, 0.6958, 0.8991, 0.3918],
         [0.2549, 0.9363, 0.3098, 0.7053]]]), tensor([[[0.0095, 0.4314, 0.6110, 0.4594],
         [0.8541, 0.7622, 0.3550, 0.7715],
         [0.5951, 0.9786, 0.3598, 0.2587],
         [0.5516, 0.6523, 0.5176, 0.1267]],

        [[0.8616, 0.3667, 0.0145, 0.9252],
         [0.5995, 0.3094, 0.0483, 0.1996],
         [0.1004, 0.1373, 0.3303, 0.0982],
         [0.2414, 0.7782, 0.8850, 0.1027]],

        [[0.0559, 0.8675, 0.7974, 0.6309],
         [0.3900, 0.4914, 0.4957, 0.5973],
         [0.6249, 0.8075, 0.6700, 0.7789],
         [0.6211, 0.9158, 0.6633, 0.2306]]]))

Եզրակացություն

Մենք քննարկել ենք բոլոր տեսակի թենզորները Pytorch-ում: Pytorch-ը պարզապես հայտնի է N-չափով կամ կարելի է ասել բարձրաչափ տենզորով: Վերոհիշյալ ելքերը օգտագործում էին տարբեր ներկառուցված ֆունկցիաներ, ինչպիսիք են split(), randn() և, rand()-ը, որն օգնում է արդյունքը ստանալ 3D թենզորի տեսքով: Տենսորի տարբեր կիրառություններն օգտագործվում են ֆիզիկայի, ճարտարագիտության և համակարգչային գիտության բնագավառում: