目錄
1 Tensor概述
2 Tensor的創建
2.1 基本的創建方式
2.1.1 torch.tensor
2.1.2 torch.Tensor
2.2 創建線性和隨機張量
2.2.1 創建線性張量
2.2.2 隨機張量
1 Tensor概述
PyTorch會將數據封裝成張量(Tensor)進行計算,張量就是元素為相同類型。
張量可以在GPU上加速運行。
2 Tensor的創建
2.1 基本的創建方式
以下講的創建tensor的函數中有兩個有默認值的參數dtype和device, 分別代表數據類型和計算設備
2.1.1 torch.tensor
使用tensor方法創建張量,可以創建標量,一維,二維,多維數組
參數:
dtype:指定張量的數據類型
device:指定張量的運算的設備:cuda、cpu,如果不指定,默認在cpu上運算
import torchdef test01():t1=torch.tensor([1,2,3],dtype=torch.float32,device="cpu")print(t1)print(t1.shape)# size和shape作用一樣,獲取張量的形狀print(t1.size())# dtype:獲取張量的數據類型,如果在創建張量時,沒有指定dtype,則自動根據輸入數組的數據類型來判斷print(t1.dtype)# 用標量創建張量tensor = torch.tensor(5)# 使用numpy隨機一個數組創建張量tensor = torch.tensor(np.random.randn(3, 5))
2.1.2 torch.Tensor
使用Tensor()構造函數創建張量,強制將數據類型轉換為float32,沒有dtype和device屬性
tensor()方法創建的張量更靈活,使用更多一些。
def test02():# 1. 根據形狀創建張量tensor1 = torch.Tensor(2, 3)print(tensor1)t1=torch.Tensor([1,2,3])print(t1)print(t1.shape)print(t1.dtype)
2.2 創建線性和隨機張量
2.2.1 創建線性張量
import torch
import numpy as np# 不用科學計數法打印
torch.set_printoptions(sci_mode=False)def test004():# 1. 創建線性張量r1 = torch.arange(0, 10, 2)print(r1)# 2. 在指定空間按照元素個數生成張量:等差r2 = torch.linspace(3, 10, 10)print(r2)r2 = torch.linspace(3, 10000000, 10)print(r2)if __name__ == "__main__":test004()
2.2.2 隨機張量
import torchdef test001():# 1. 設置隨機數種子torch.manual_seed(123)# 2. 獲取隨機數種子,需要查看種子時調用print(torch.initial_seed())# 3. 生成隨機張量,均勻分布(范圍 [0, 10))# 創建2個樣本,每個樣本3個特征s=torch.randint(0,10,(2,3))print(s)# 4. 生成隨機張量:標準正態分布(均值 0,標準差 1)print(torch.randn(2, 3))# 5. 原生服從正態分布:均值為2, 方差為3,形狀為1*4的正態分布print(torch.normal(mean=2, std=3, size=(1, 4)))if __name__ == "__main__":test001()