wordpress獲取指定目錄的文章百度網(wǎng)站排名優(yōu)化
pytorch中張量的有關(guān)操作
- 創(chuàng)建張量
- torch.tensor(data): 從數(shù)據(jù)創(chuàng)建張量
- torch.zeros(size): 創(chuàng)建元素全為0的張量
- torch.ones(size): 創(chuàng)建元素全為1的張量
- torch.empty(size): 創(chuàng)建未初始化的張量
- torch.randn(size): 創(chuàng)建服從標(biāo)準(zhǔn)正態(tài)分布的張量
- torch.arange(start, end, step): 創(chuàng)建一個范圍內(nèi)的一維張量
- torch.linspace(start, end, steps): 創(chuàng)建一個在指定范圍內(nèi)均勻間隔的張量
- 張量屬性相關(guān)
- .dtype: 獲取張量的數(shù)據(jù)類型
- .shape: 獲取張量的形狀
- .device: 獲取張量所在的設(shè)備
- 張量索引、切片與拼接
- tensor[index]: 索引操作
- 使用切片來獲取張量的子張量
- 沿著指定維度將多個張量連接在一起
- 在一個新的維度上堆疊多個張量
- 張量變換
- tensor.view(shape): 返回給定形狀的張量視圖
- 返回一個具有指定形狀的新張量,原始張量的元素?cái)?shù)量必須與新形狀一致
- 交換張量中兩個維度的位置
- 按照給定順序重新排列張量的維度
- 刪除張量中所有長度為1的維度
- 在指定位置增加一個長度為1的新維度
創(chuàng)建張量
torch.tensor(data): 從數(shù)據(jù)創(chuàng)建張量
這個函數(shù)會根據(jù)提供的數(shù)據(jù)創(chuàng)建一個新的張量。數(shù)據(jù)可以是列表、數(shù)組等。
import torchdata = [1, 2, 3, 4, 5]
tensor_data = torch.tensor(data)
print(tensor_data)
torch.zeros(size): 創(chuàng)建元素全為0的張量
創(chuàng)建一個指定大小的張量,其中所有元素的值都為0。
import torchsize = (2, 3)
zeros_tensor = torch.zeros(size)
print(zeros_tensor)
torch.ones(size): 創(chuàng)建元素全為1的張量
創(chuàng)建一個指定大小的張量,其中所有元素的值都為1。
import torchsize = (2, 3)
ones_tensor = torch.ones(size)
print(ones_tensor)
torch.empty(size): 創(chuàng)建未初始化的張量
創(chuàng)建一個指定大小的未初始化張量,其值取決于內(nèi)存的狀態(tài)。
import torchsize = (2, 3)
empty_tensor = torch.empty(size)
print(empty_tensor)
torch.randn(size): 創(chuàng)建服從標(biāo)準(zhǔn)正態(tài)分布的張量
創(chuàng)建一個指定大小的張量,其中的元素值是從標(biāo)準(zhǔn)正態(tài)分布中隨機(jī)抽取的。
import torchsize = (2, 3)
randn_tensor = torch.randn(size)
print(randn_tensor)
torch.arange(start, end, step): 創(chuàng)建一個范圍內(nèi)的一維張量
創(chuàng)建一個一維張量,其中的元素值從起始值到結(jié)束值,步長為給定的步長。
import torchstart = 0
end = 5
step = 1
arange_tensor = torch.arange(start, end, step)
print(arange_tensor)
torch.linspace(start, end, steps): 創(chuàng)建一個在指定范圍內(nèi)均勻間隔的張量
創(chuàng)建一個一維張量,其中的元素值在指定范圍內(nèi)均勻分布。
import torchstart = 0
end = 5
steps = 5
linspace_tensor = torch.linspace(start, end, steps)
print(linspace_tensor)
張量屬性相關(guān)
.dtype: 獲取張量的數(shù)據(jù)類型
返回張量中元素的數(shù)據(jù)類型。
import torchtensor = torch.tensor([1, 2, 3])
print(tensor.dtype)
.shape: 獲取張量的形狀
返回一個元組,表示張量的形狀。
import torchtensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(tensor.shape)
.device: 獲取張量所在的設(shè)備
返回一個字符串,表示張量所在的設(shè)備,如’cpu’或’cuda:0’。
import torchtensor = torch.tensor([1, 2, 3])
print(tensor.device)
張量索引、切片與拼接
tensor[index]: 索引操作
使用索引來訪問張量中的元素。
import torchtensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
element = tensor[0, 1] # Accesses the element at row 0, column 1
print(element)
tensor[start:end]: 切片操作
使用切片來獲取張量的子張量
import torchtensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
sub_tensor = tensor[:, 1:] # Slices the tensor to get all rows and columns starting from the second column
print(sub_tensor)
torch.cat(tensors, dim): 在給定維度上連接張量
沿著指定維度將多個張量連接在一起
import torchtensor1 = torch.tensor([[1, 2], [3, 4]])
tensor2 = torch.tensor([[5, 6], [7, 8]])
concatenated_tensor = torch.cat((tensor1, tensor2), dim=0) # Concatenates along the row dimension
print(concatenated_tensor)
torch.stack(tensors, dim): 在新維度上堆疊張量
在一個新的維度上堆疊多個張量
import torchtensor1 = torch.tensor([1, 2, 3])
tensor2 = torch.tensor([4, 5, 6])
stacked_tensor = torch.stack((tensor1, tensor2), dim=1) # Stacks tensors along a new dimension
print(stacked_tensor)
張量變換
tensor.view(shape): 返回給定形狀的張量視圖
返回一個具有指定形狀的新張量,原始張量的形狀必須與新形狀兼容。
import torchtensor = torch.tensor([[1, 2], [3, 4]])
reshaped_tensor = tensor.view(1, 4) # Reshapes the tensor to a 1x4 tensor
print(reshaped_tensor)
tensor.reshape(shape): 改變張量的形狀
返回一個具有指定形狀的新張量,原始張量的元素?cái)?shù)量必須與新形狀一致
import torchtensor = torch.tensor([[1, 2], [3, 4]])
reshaped_tensor = tensor.reshape(1, 4) # Reshapes the tensor to a 1x4 tensor
print(reshaped_tensor)
tensor.transpose(dim0, dim1): 交換兩個維度
交換張量中兩個維度的位置
import torchtensor = torch.tensor([[1, 2], [3, 4]])
transposed_tensor = tensor.transpose(0, 1) # Swaps the first and second dimensions
print(transposed_tensor)
tensor.permute(*dims): 按照指定順序排列張量的維度
按照給定順序重新排列張量的維度
import torchtensor = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
permuted_tensor = tensor.permute(1, 0, 2) # Permutes the dimensions to (1, 0, 2)
print(permuted_tensor)
tensor.squeeze(): 刪除所有長度為1的維度
刪除張量中所有長度為1的維度
import torchtensor = torch.tensor([[[1, 2], [3, 4]]])
squeezed_tensor = tensor.squeeze() # Removes the single-dimensional entries
print(squeezed_tensor)
tensor.unsqueeze(dim): 在指定位置增加一個維度
在指定位置增加一個長度為1的新維度
import torchtensor = torch.tensor([[1, 2], [3, 4]])
unsqueezed_tensor = tensor.unsqueeze(0) # Adds a dimension at index 0
print(unsqueezed_tensor)