Ինչպե՞ս կտրատել 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 թենզորի տեսքով: Տենսորի տարբեր կիրառություններն օգտագործվում են ֆիզիկայի, ճարտարագիտության և համակարգչային գիտության բնագավառում: