W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
PyTorch 是一款開(kāi)源的機(jī)器學(xué)習(xí)框架,它具有以下優(yōu)勢(shì):
張量是 PyTorch 中最基本的數(shù)據(jù)結(jié)構(gòu),用于表示多維數(shù)組。
import torch
## 創(chuàng)建一個(gè)空張量
empty_tensor = torch.empty(2, 3)
print("空張量:", empty_tensor)
## 創(chuàng)建一個(gè)全零張量
zero_tensor = torch.zeros(2, 3)
print("全零張量:", zero_tensor)
## 創(chuàng)建一個(gè)全一的張量
ones_tensor = torch.ones(2, 3)
print("全一的張量:", ones_tensor)
## 創(chuàng)建一個(gè)從 0 到 4 的一維張量
arange_tensor = torch.arange(5)
print("從 0 到 4 的一維張量:", arange_tensor)
## 創(chuàng)建一個(gè)指定范圍和步長(zhǎng)的一維張量
linspace_tensor = torch.linspace(0, 10, 5)
print("指定范圍和步長(zhǎng)的一維張量:", linspace_tensor)
## 創(chuàng)建一個(gè)二維單位矩陣
eye_tensor = torch.eye(3)
print("二維單位矩陣:", eye_tensor)
## 創(chuàng)建一個(gè)指定值填充的張量
full_tensor = torch.full((2, 3), 7)
print("指定值填充的張量:", full_tensor)
運(yùn)行結(jié)果示例:
空張量: tensor([[4.9444e-40, 4.6455e-40, 0.0000e+00],
[0.0000e+00, 0.0000e+00, 0.0000e+00]])
全零張量: tensor([[0., 0., 0.],
[0., 0., 0.]])
全一的張量: tensor([[1., 1., 1.],
[1., 1., 1.]])
從 0 到 4 的一維張量: tensor([0, 1, 2, 3, 4])
指定范圍和步長(zhǎng)的一維張量: tensor([0., 2.5, 5., 7.5, 10.])
二維單位矩陣: tensor([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
指定值填充的張量: tensor([[7., 7., 7.],
[7., 7., 7.]])
## 創(chuàng)建兩個(gè)張量
tensor_a = torch.tensor([[1, 2], [3, 4]])
tensor_b = torch.tensor([[5, 6], [7, 8]])
## 張量相加
add_result = torch.add(tensor_a, tensor_b)
print("張量相加結(jié)果:", add_result)
## 張量相減
sub_result = torch.sub(tensor_a, tensor_b)
print("張量相減結(jié)果:", sub_result)
## 張量相乘(逐元素相乘)
mul_result = torch.mul(tensor_a, tensor_b)
print("張量相乘結(jié)果:", mul_result)
## 張量矩陣乘法
matmul_result = torch.matmul(tensor_a, tensor_b)
print("張量矩陣乘法結(jié)果:", matmul_result)
運(yùn)行結(jié)果示例:
張量相加結(jié)果: tensor([[6, 8],
[10, 12]])
張量相減結(jié)果: tensor([[-4, -4],
[-4, -4]])
張量相乘結(jié)果: tensor([[5, 12],
[21, 32]])
張量矩陣乘法結(jié)果: tensor([[19, 22],
[43, 50]])
## 索引操作
print("第一個(gè)元素:", tensor_a[0, 0])
print("第二行:", tensor_a[1])
## 切片操作
print("前兩行:", tensor_a[:2])
print("第一列:", tensor_a[:, 0])
運(yùn)行結(jié)果示例:
第一個(gè)元素: tensor(1)
第二行: tensor([3, 4])
前兩行: tensor([[1, 2],
[3, 4]])
第一列: tensor([1, 3])
## 水平拼接
cat_result = torch.cat((tensor_a, tensor_b), dim=1)
print("水平拼接結(jié)果:", cat_result)
## 垂直拼接
stack_result = torch.stack((tensor_a, tensor_b), dim=0)
print("垂直拼接結(jié)果:", stack_result)
運(yùn)行結(jié)果示例:
水平拼接結(jié)果: tensor([[1, 2, 5, 6],
[3, 4, 7, 8]])
垂直拼接結(jié)果: tensor([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
## 生成均勻分布的隨機(jī)數(shù)
rand_tensor = torch.rand(2, 3)
print("均勻分布隨機(jī)數(shù):", rand_tensor)
## 生成標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)
randn_tensor = torch.randn(2, 3)
print("標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù):", randn_tensor)
## 生成指定范圍的隨機(jī)整數(shù)
randint_tensor = torch.randint(0, 10, (2, 3))
print("指定范圍隨機(jī)整數(shù):", randint_tensor)
運(yùn)行結(jié)果示例:
均勻分布隨機(jī)數(shù): tensor([[0.1234, 0.5678, 0.9012],
[0.3456, 0.7890, 0.2345]])
標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù): tensor([[0.1234, -0.5678, 0.9012],
[-0.3456, 0.7890, -0.2345]])
指定范圍隨機(jī)整數(shù): tensor([[2, 5, 7],
[3, 8, 1]])
## 計(jì)算絕對(duì)值
abs_result = torch.abs(torch.tensor([-1, -2, 3]))
print("絕對(duì)值結(jié)果:", abs_result)
## 計(jì)算三角函數(shù)
sin_result = torch.sin(torch.tensor([0, 3.1416, 6.2832]))
print("正弦函數(shù)結(jié)果:", sin_result)
cos_result = torch.cos(torch.tensor([0, 3.1416, 6.2832]))
print("余弦函數(shù)結(jié)果:", cos_result)
運(yùn)行結(jié)果示例:
絕對(duì)值結(jié)果: tensor([1, 2, 3])
正弦函數(shù)結(jié)果: tensor([0.0000, 0.0000, -0.0000])
余弦函數(shù)結(jié)果: tensor([1.0000, -1.0000, 1.0000])
## 矩陣轉(zhuǎn)置
transpose_result = torch.transpose(tensor_a, 0, 1)
print("矩陣轉(zhuǎn)置結(jié)果:", transpose_result)
## 矩陣求逆(需要矩陣可逆)
## tensor_a = torch.tensor([[4, 7], [2, 6]], dtype=torch.float32)
## inverse_result = torch.inverse(tensor_a)
## print("矩陣求逆結(jié)果:", inverse_result)
運(yùn)行結(jié)果示例:
矩陣轉(zhuǎn)置結(jié)果: tensor([[1, 3],
[2, 4]])
## 創(chuàng)建兩個(gè)張量
tensor_x = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
tensor_y = torch.tensor([[5.0, 6.0], [7.0, 8.0]])
## 進(jìn)行加減乘除運(yùn)算
add_xy = torch.add(tensor_x, tensor_y)
sub_xy = torch.sub(tensor_x, tensor_y)
mul_xy = torch.mul(tensor_x, tensor_y)
div_xy = torch.div(tensor_x, tensor_y)
print("張量相加:", add_xy)
print("張量相減:", sub_xy)
print("張量相乘:", mul_xy)
print("張量相除:", div_xy)
運(yùn)行結(jié)果示例:
張量相加: tensor([[6., 8.],
[10., 12.]])
張量相減: tensor([[-4., -4.],
[-4., -4.]])
張量相乘: tensor([[5., 12.],
[21., 32.]])
張量相除: tensor([[0.2000, 0.3333],
[0.4286, 0.5000]])
## 生成隨機(jī)張量
random_tensor = torch.randn(100, 100)
## 計(jì)算均值和標(biāo)準(zhǔn)差
mean_value = torch.mean(random_tensor)
std_value = torch.std(random_tensor)
print("隨機(jī)張量均值:", mean_value)
print("隨機(jī)張量標(biāo)準(zhǔn)差:", std_value)
運(yùn)行結(jié)果示例:
隨機(jī)張量均值: tensor(0.0054)
隨機(jī)張量標(biāo)準(zhǔn)差: tensor(0.9972)
本教程從零基礎(chǔ)出發(fā),帶領(lǐng)大家認(rèn)識(shí)了 PyTorch 環(huán)境,了解了張量的基本操作、索引與切片、拼接、隨機(jī)抽樣以及數(shù)學(xué)運(yùn)算等內(nèi)容。希望大家可以通過(guò)代碼實(shí)操環(huán)節(jié)加強(qiáng)對(duì)所學(xué)知識(shí)的理解。后續(xù)可以繼續(xù)探索更多 PyTorch 相關(guān)知識(shí),如自動(dòng)梯度、神經(jīng)網(wǎng)絡(luò)構(gòu)建與訓(xùn)練等。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: