最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PyTorch Tutorial 02 - Tensor Basics

2023-02-14 19:41 作者:Mr-南喬  | 我要投稿

教程Python代碼如下:


import torch

import numpy as np


"""張量"""

#empty,空張量,值未初始化

x = torch.empty(1)

print(x)


x = torch.empty(3)

print(x)


x = torch.empty(2,3)

print(x)


x = torch.empty(2,2,3)

print(x)


#rand隨機值張量

x = torch.rand(2,2)

print(x)


#zeros,0張量,這里x類型為float

x = torch.zeros(2,2)

print(x)


#ones,1張量

x = torch.ones(2,2)

print(x)

print(x.dtype)#這里x類型為float


#dtype,類型

x = torch.ones(2,2,dtype=torch.int)

print(x)

print(x.dtype)#這里x類型為int


x = torch.ones(2,2,dtype=torch.double)

print(x)

print(x.dtype)#這里x類型為double


#size(),大小

x = torch.ones(2,2,dtype=torch.double)

print(x.size())#torch.Size([2, 2])


#tensor

x = torch.tensor([2.5,0.1])

print(x)



"""加、減、乘運算"""

#加

x = torch.rand(2,2)

y = torch.rand(2,2)

print(x)

print(y)


z = x + y

print(z)


z = torch.add(x,y) #與z = x + y同

print(z)

print("z")


y.add_(x)

print(y)

print("y = y + x")


#減

x = torch.rand(2,2)

y = torch.rand(2,2)

print(x)

print(y)


z = x - y

z = torch.sub(x,y)

print(z)

print("z = x - y")

y.sub_(x)

print(y)

print("y = y - x")


#乘

x = torch.rand(2,2)

y = torch.rand(2,2)

print(x)

print(y)


z = x * y

z = torch.mul(x,y)

print(z)

print("z = x * y")

y.mul_(x)

print(y)

print("y = y * x")


#除

x = torch.rand(2,2)

y = torch.rand(2,2)

print(x)

print(y)


z = x / y

z = torch.div(x,y)

print(z)

print("z = x / y")


y.div_(x)

print(y)

print("y = y / x")


"""切片"""

x = torch.rand(5,3)

print(x)

print(x[0,:])#第一行

print(x[:,0])#第一列

print(x[0,0])#取某下標對應的元素

print(x[0,0].item())#item()的作用是從包含單個元素的張量中取出該元素的值,并保持元素類型不變,只有張量中只有一個元素時才能用item()方法


"""重塑"""

x = torch.rand(4,4)

print(x)


y = x.view(16)

print(y)


y = x.view(-1,8) #y = x.view(2,8),-1自動補齊

print(y)

print(y.size())


"""torch和numpy的轉(zhuǎn)換"""

#torch轉(zhuǎn)numpy

a = torch.ones(5)

print(a) #tensor([1., 1., 1., 1., 1.])

b = a.numpy()

print(b) #[1. 1. 1. 1. 1.]

print(type(b)) #<class 'numpy.ndarray'>


#a,b兩個張量如果在CPU而不是GPU那么ab共享同一個位置,一個值改變另一個也會變,因為ab指向相同的內(nèi)存位置

a.add_(1)

print(a) #tensor([2., 2., 2., 2., 2.])

print(b) #[2. 2. 2. 2. 2.]


#numpy轉(zhuǎn)torch

a = np.ones(5)

print(a)

b = torch.from_numpy(a)

print(b)


a += 1

print(a)

print(b)


"""程序遷移至GPU"""

print("\n" + "程序遷移至GPU")

if torch.cuda.is_available():

device = torch.device("cuda")

#創(chuàng)建一個張量,并將其放在GPU上

x = torch.ones(5,device=device)

#先創(chuàng)建一個張量,再將其遷移到GPU上

y = torch.ones(5)

y = y.to(device)


z = x + y #這將會在GPU上執(zhí)行,而且可能會快很多

print(z)

print("GPU z")

"""z.numpy()會報錯,因為numpy()只能處理CPU張量,而不能處理GPU張量,所以不能把GPU張量轉(zhuǎn)換回numpy,所以我們必須把其遷移回CPU"""

#將張量遷移回CPU

z = z.to("cpu")

print(z)

print("CPU z")

PyTorch Tutorial 02 - Tensor Basics的評論 (共 條)

分享到微博請遵守國家法律
修水县| 汉沽区| 钟祥市| 莱芜市| 巴塘县| 保亭| 柞水县| 十堰市| 黄龙县| 博爱县| 乐亭县| 汾阳市| 玉树县| 武安市| 长顺县| 紫云| 巴青县| 靖边县| 砀山县| 祁东县| 平顶山市| 织金县| 台前县| 彭泽县| 清苑县| 鹰潭市| 长治县| 涞源县| 安远县| 南靖县| 道真| 行唐县| 广南县| 怀来县| 寻乌县| 虎林市| 宜兰县| 边坝县| 钟祥市| 马关县| 黔南|