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

突破Pytorch核心,Tensor ??!

人工智能 深度學(xué)習(xí)
張量作為深度學(xué)習(xí)中的基本數(shù)據(jù)結(jié)構(gòu),對(duì)于理解和實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)非常關(guān)鍵。今兒介紹的是關(guān)于PyTorch中張量的基礎(chǔ)概念、原理以及常見操作。

今天會(huì)把Pytorch在張量這方面的內(nèi)容做一個(gè)記錄。

同時(shí)希望可以給大家提供一丟丟幫助!

因?yàn)榻駜悍窒淼膬?nèi)容,絕對(duì)是非常干貨的一些示例。

先簡(jiǎn)單介紹下,在PyTorch中,張量是核心數(shù)據(jù)結(jié)構(gòu),它是一個(gè)多維數(shù)組,類似于NumPy中的數(shù)組。張量不僅僅是存儲(chǔ)數(shù)據(jù)的容器,還是進(jìn)行各種數(shù)學(xué)運(yùn)算和深度學(xué)習(xí)操作的基礎(chǔ)。

下面從三方面做一個(gè)總結(jié):

  • 張量的概念
  • 張量的原理
  • 張量的操作

圖片圖片

張量的概念

1.張量的定義

張量是一種多維數(shù)組,它可以是標(biāo)量(零維數(shù)組)、向量(一維數(shù)組)、矩陣(二維數(shù)組)或具有更高維度的數(shù)組。

在PyTorch中,張量是torch.Tensor的實(shí)例,可以通過不同的方式創(chuàng)建,如直接從Python列表、NumPy數(shù)組或通過特定函數(shù)生成。

import torch

# 創(chuàng)建一個(gè)標(biāo)量
scalar_tensor = torch.tensor(3.14)

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

# 創(chuàng)建一個(gè)矩陣
matrix_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])

# 創(chuàng)建一個(gè)3D張量
tensor_3d = torch.rand((2, 3, 4))  # 2行3列4深度

2.張量的屬性

每個(gè)張量都有一些重要的屬性,包括形狀(shape)、數(shù)據(jù)類型(dtype)和設(shè)備(device)。

# 獲取張量的形狀
shape = tensor_3d.shape

# 獲取張量的數(shù)據(jù)類型
dtype = tensor_3d.dtype

# 獲取張量所在的設(shè)備
device = tensor_3d.device

3.張量的形狀

張量的形狀定義了其維度和每個(gè)維度上的大小。例如,形狀為(2, 3, 4)的張量具有2行、3列和4個(gè)深度。形狀對(duì)于理解和操作張量非常重要。

# 獲取張量的形狀
shape = tensor_3d.shape

# 改變張量的形狀
reshaped_tensor = tensor_3d.view(3, 8)  # 將原始形狀(2, 3, 4)變?yōu)?3, 8)

張量的原理

PyTorch中的張量是基于Tensor類實(shí)現(xiàn)的,它提供了對(duì)底層存儲(chǔ)的抽象。

張量包含三個(gè)主要組件:

  • 存儲(chǔ)(storage)
  • 形狀(shape)
  • 步幅(stride)

1.存儲(chǔ)

(Storage)存儲(chǔ)是實(shí)際存儲(chǔ)數(shù)據(jù)的地方,它是一塊連續(xù)的內(nèi)存區(qū)域。多個(gè)張量可以共享相同的存儲(chǔ),從而減少內(nèi)存消耗。存儲(chǔ)中的數(shù)據(jù)按照張量的形狀進(jìn)行排列。

# 獲取張量的存儲(chǔ)
storage = tensor_3d.storage()

2.形狀(Shape)

張量的形狀定義了其維度和每個(gè)維度上的大小。形狀信息有助于解釋存儲(chǔ)中數(shù)據(jù)的組織方式。

# 獲取張量的形狀
shape = tensor_3d.shape

3.步幅(Stride)

步幅是指在存儲(chǔ)中移動(dòng)到下一個(gè)元素所需的步數(shù)。了解步幅有助于理解在張量中進(jìn)行索引和切片時(shí)的性能。

# 獲取張量的步幅
stride = tensor_3d.stride()

張量的操作

PyTorch提供了豐富的張量操作,包括數(shù)學(xué)運(yùn)算、邏輯運(yùn)算、索引和切片等。

這里列舉最最常見的集中操作:

1.數(shù)學(xué)運(yùn)算

# 加法
result_add = tensor_3d + 2

# 乘法
result_mul = tensor_3d * 3

# 矩陣乘法
matrix_a = torch.rand((2, 3))
matrix_b = torch.rand((3, 4))
result_matmul = torch.mm(matrix_a, matrix_b)

2. 邏輯運(yùn)算

# 大小比較
result_compare = tensor_3d > 0.5

# 邏輯運(yùn)算
result_logical = torch.logical_and(result_add, result_compare)

3. 索引和切片

# 索引
element = tensor_3d[0, 1, 2]

# 切片
sliced_tensor = tensor_3d[:, 1:3, :]

4. 形狀操作

# 改變形狀
reshaped_tensor = tensor_3d.view(3, 8)

# 轉(zhuǎn)置
transposed_tensor = tensor_3d.transpose(0, 2)

5.廣播

廣播是一種自動(dòng)擴(kuò)展張量的操作,使得形狀不同的張量可以進(jìn)行逐元素的數(shù)學(xué)運(yùn)算。

# 廣播
tensor_a = torch.rand((1, 3, 1))
tensor_b = torch.rand((2, 1, 4))
result_broadcast = tensor_a + tensor_b

最后

今兒介紹的是關(guān)于PyTorch中張量的基礎(chǔ)概念、原理以及常見操作。

張量作為深度學(xué)習(xí)中的基本數(shù)據(jù)結(jié)構(gòu),對(duì)于理解和實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)非常關(guān)鍵。

責(zé)任編輯:趙寧寧 來源: DOWHAT小壯
相關(guān)推薦

2024-01-03 10:23:11

卷積神經(jīng)網(wǎng)絡(luò)CNNpytorch

2024-01-08 08:31:26

PyTorch深度學(xué)習(xí)自動(dòng)求導(dǎo)

2024-01-05 09:10:06

優(yōu)化器深度學(xué)習(xí)pytorch

2024-01-04 12:52:00

pytorch函數(shù)神經(jīng)網(wǎng)絡(luò)

2024-01-02 15:55:27

深度學(xué)習(xí)模型pytorch

2021-11-05 12:59:51

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

2017-09-05 10:20:30

PyTorchTensorPython

2024-03-01 20:55:40

Pytorch張量Tensor

2024-11-11 08:00:00

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

2015-08-05 11:32:10

2024-12-31 07:00:00

2017-03-19 16:05:01

2014-05-28 13:25:39

光纖移動(dòng)聯(lián)通

2014-05-30 15:04:05

智能路由硬盤保護(hù)

2010-01-13 14:40:17

2016-09-28 22:10:52

5G無線傳輸

2021-05-14 15:14:01

工信部6G5G

2024-05-10 12:59:58

PyTorch人工智能

2024-09-27 14:26:52

2025-04-08 03:45:00

點(diǎn)贊
收藏

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