自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PyTorch 中 12 種張量操作詳解

開(kāi)發(fā)
本文將詳細(xì)介紹 PyTorch 中常用的 12 種張量操作,幫助你更好地理解和使用這個(gè)工具。

PyTorch 是一個(gè)強(qiáng)大的深度學(xué)習(xí)框架,它允許開(kāi)發(fā)者輕松地定義和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。張量是 PyTorch 的核心數(shù)據(jù)結(jié)構(gòu),類(lèi)似于 NumPy 數(shù)組,但支持自動(dòng)微分以及在 GPU 上加速計(jì)算。本文將詳細(xì)介紹 PyTorch 中常用的 12 種張量操作,幫助你更好地理解和使用這個(gè)工具。

1.創(chuàng)建張量

首先,我們需要安裝 PyTorch 并導(dǎo)入必要的庫(kù)。

# 安裝 PyTorch
!pip install torch

# 導(dǎo)入 PyTorch 庫(kù)
import torch

創(chuàng)建張量是最基本的操作之一。你可以從 Python 列表或 NumPy 數(shù)組中創(chuàng)建張量。

# 從列表創(chuàng)建張量
tensor_from_list = torch.tensor([1, 2, 3])
print(tensor_from_list)  # 輸出: tensor([1, 2, 3])

# 從 NumPy 數(shù)組創(chuàng)建張量
import numpy as np
numpy_array = np.array([1, 2, 3])
tensor_from_numpy = torch.from_numpy(numpy_array)
print(tensor_from_numpy)  # 輸出: tensor([1, 2, 3])

2.查看張量形狀

了解張量的形狀對(duì)于處理數(shù)據(jù)非常重要。

# 創(chuàng)建一個(gè) 2x3 的矩陣
matrix = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(matrix.shape)  # 輸出: torch.Size([2, 3])

3.轉(zhuǎn)置張量

轉(zhuǎn)置可以改變張量的維度順序。

# 創(chuàng)建一個(gè) 2x3 的矩陣
matrix = torch.tensor([[1, 2, 3], [4, 5, 6]])
transposed_matrix = matrix.t()
print(transposed_matrix)  # 輸出:
# tensor([[1, 4],
#         [2, 5],
#         [3, 6]])

4.拆分張量

拆分張量可以幫助你在不同維度上分割數(shù)據(jù)。

# 創(chuàng)建一個(gè) 3x4 的矩陣
matrix = torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
split_tensors = torch.split(matrix, split_size=2, dim=1)
for t in split_tensors:
    print(t)
# 輸出:
# tensor([[ 1,  2],
#         [ 5,  6],
#         [ 9, 10]])
# tensor([[ 3,  4],
#         [ 7,  8],
#         [11, 12]])

5.拼接張量

拼接操作可以將多個(gè)張量合并成一個(gè)更大的張量。

# 創(chuàng)建兩個(gè) 2x2 的矩陣
matrix1 = torch.tensor([[1, 2], [3, 4]])
matrix2 = torch.tensor([[5, 6], [7, 8]])
concatenated_tensor = torch.cat((matrix1, matrix2), dim=0)
print(concatenated_tensor)  # 輸出:
# tensor([[1, 2],
#         [3, 4],
#         [5, 6],
#         [7, 8]])

6.張量索引

索引操作允許你選擇張量中的特定元素或子集。

# 創(chuàng)建一個(gè) 2x3 的矩陣
matrix = torch.tensor([[1, 2, 3], [4, 5, 6]])
element = matrix[0, 1]
print(element)  # 輸出: tensor(2)

sub_matrix = matrix[1, :]
print(sub_matrix)  # 輸出: tensor([4, 5, 6])

7.張量切片

切片可以讓你選擇張量的一部分。

# 創(chuàng)建一個(gè) 2x3 的矩陣
matrix = torch.tensor([[1, 2, 3], [4, 5, 6]])
slice_tensor = matrix[:, 1:]
print(slice_tensor)  # 輸出:
# tensor([[2, 3],
#         [5, 6]])

8.張量廣播

廣播是一種機(jī)制,允許你執(zhí)行不同形狀的張量之間的操作。

# 創(chuàng)建一個(gè) 1x3 的向量和一個(gè)標(biāo)量
vector = torch.tensor([1, 2, 3])
scalar = torch.tensor(2)

# 將向量乘以標(biāo)量
broadcasted_tensor = vector * scalar
print(broadcasted_tensor)  # 輸出: tensor([2, 4, 6])

9.張量相加

相加操作用于將兩個(gè)張量對(duì)應(yīng)位置的元素相加。

# 創(chuàng)建兩個(gè) 2x2 的矩陣
matrix1 = torch.tensor([[1, 2], [3, 4]])
matrix2 = torch.tensor([[5, 6], [7, 8]])

# 相加
sum_tensor = matrix1 + matrix2
print(sum_tensor)  # 輸出:
# tensor([[ 6,  8],
#         [10, 12]])

10.張量乘法

乘法操作可以用于點(diǎn)積或矩陣乘法。

# 創(chuàng)建兩個(gè) 2x2 的矩陣
matrix1 = torch.tensor([[1, 2], [3, 4]])
matrix2 = torch.tensor([[5, 6], [7, 8]])

# 點(diǎn)積
dot_product = torch.dot(matrix1.view(-1), matrix2.view(-1))
print(dot_product)  # 輸出: tensor(70)

# 矩陣乘法
matrix_product = torch.matmul(matrix1, matrix2)
print(matrix_product)  # 輸出:
# tensor([[19, 22],
#         [43, 50]])

11.張量歸一化

歸一化可以將張量的值調(diào)整到特定范圍內(nèi)。

# 創(chuàng)建一個(gè) 1x3 的向量
vector = torch.tensor([1, 2, 3])

# 歸一化
normalized_vector = torch.nn.functional.normalize(vector, p=2, dim=0)
print(normalized_vector)  # 輸出: tensor([0.2673, 0.5345, 0.8018])

12.張量隨機(jī)初始化

隨機(jī)初始化在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中非常重要。

# 隨機(jī)初始化一個(gè) 2x3 的矩陣
random_matrix = torch.randn(2, 3)
print(random_matrix)  # 輸出類(lèi)似:
# tensor([[ 1.0431, -0.1827, -0.2591],
#         [-0.2442, -0.3353,  0.4927]])

總結(jié)

本文詳細(xì)介紹了 PyTorch 中常用的 12 種張量操作,包括創(chuàng)建張量、查看張量形狀、轉(zhuǎn)置張量、拆分張量、拼接張量、張量索引、張量切片、張量廣播、張量相加、張量乘法、張量歸一化和張量隨機(jī)初始化。這些操作是使用 PyTorch 進(jìn)行深度學(xué)習(xí)的基礎(chǔ),掌握它們將有助于你更高效地開(kāi)發(fā)和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。

責(zé)任編輯:趙寧寧 來(lái)源: 小白PythonAI編程
相關(guān)推薦

2021-06-18 06:31:55

PyTorchPython深度學(xué)習(xí)

2021-11-05 12:59:51

深度學(xué)習(xí)PytorchTenso

2022-01-03 16:08:36

深度學(xué)習(xí)PyTorchNumPy

2024-03-01 20:55:40

Pytorch張量Tensor

2025-04-27 09:59:38

深度學(xué)習(xí)AI人工智能

2021-09-22 12:56:19

編程技能Golang

2024-11-08 13:34:24

2009-12-18 09:23:11

2024-10-29 16:06:27

2015-04-07 10:31:31

PHPMySQLBuffer用法

2020-06-28 09:40:58

操作系統(tǒng)GPUCPU

2023-09-22 11:58:49

2024-01-05 17:15:21

pytorchtensor深度學(xué)習(xí)

2024-07-16 14:15:09

2023-09-21 13:43:54

2010-03-17 12:53:43

Python Libr

2011-08-30 14:25:06

QT數(shù)據(jù)庫(kù)

2023-06-27 08:45:19

原子操作Golang

2024-04-03 00:10:24

C#System數(shù)據(jù)

2009-02-23 13:41:42

XML操作函數(shù)SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)