日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

张量简介与创建

發布時間:2025/4/5 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 张量简介与创建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Tensor的概念

? ? ? ? ? 一、張量(Tensor)

? ? ? ? ? ? ? ? ? ? 張量是一個多維數組,它是標量、向量、矩陣的高維擴展

? ? ? ? ?二、Tensor與Variable

? ? ? ? ? ? ? ? ? ?torch.autograd.Variable(包含data、grad、grad_fn、requires_grad、is_leaf)

? ? ? ? ? ? Variable是torch.autograd中的數據類型,主要用于封裝Tensor,進行自動求導

? ? ? ? ? ? data: 被包裝的Tensor

? ? ? ? ? ? grad: data的梯度

? ? ? ? ? ? grad_fn: 創建Tensor的Function,是自動求導的關鍵

? ? ? ? ? ? requires_grad: 指示是否需要梯度

? ? ? ? ? ? is_leaf: 指示是否是葉子節點(張量)

? ? ? ? ?三、Tensor

? ? ? ? ? ? PyTorch0.4.0版開始,Variable并入Tensor

? ? ? ? ? ? ? ? ? ?dtype: 張量的數據類型,如torch.FloatTensor,torch.cuda.FloatTensor

? ? ? ? ? ? ? ? ? ?shape: 張量的形狀,如(64,3,224,224)

? ? ? ? ? ? ? ? ? ?device: 張量所在設備,GPU/CPU,是加速的關鍵

? ? ? ? ? ? torch.Tensor(含有data,dtype,shape,device,requires_grad,grad,grad_fn,is_leaf幾個模塊)

?

二、Tensor創建一:直接創建

1、torch.tensor()功能: 從data創建tensordata: 數據可以是list,numpy dtype: 數據類型,默認與data的一致 device: 所在設備,cuda/cpu requires_grad: 是否需要梯度 pin_memory: 是否存于鎖頁內存torch.tensor(data,dtype=None,device=None,requires_grad=False,pin_memory=False )example:import numpy as np import torcharr = np.ones((3, 3)) print(arr.dtype) print(torch.tensor(arr))2、torch.from_numpy(ndarray)功能: 從numpy 創建 tensor 注意事項: 從torch.from_numpy 創建的tensor于原ndarray共享內存,當修改其中一個的數據,量竵一個也將會被改動example:arr = np.array([[1, 2, 3], [4, 5, 6]]) t = torch.from_numpy(arr) print(arr) print(t)arr[0, 0] = 0 print(arr) print(t)arr[0, 0] = -1 print(arr) print(t)

三、Tensor創建二:? 依據數值創建

1、torch.zeros()功能: 依size創建全0張量size: 張量的形狀,如(2,3),(3,244,244) out: 輸出的張量 layout: 內存中布局形式,有strided,sparse_coo等 device: 所在設備,gpu/cpu requires_grad: 是否需要梯度torch.zeros(*size,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False )example:out_t = torch.zeros((3, 3)) print(out_t)2、torch.zeros_like()功能: 依input形狀創建全0張量input: 創建與input同形狀的全0張量 dtype: 數據類型 layout: 內存中布局形式torch.zeros_like(input,dtype=None,layout=None,device=None,requires_grad=False )3、torch.ones() 4、torch.ones_like()5、torch.full()torch.full(size,fill_value,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False )6、torch.full_like()功能: 依input形狀創建全0張量 size: 張量的形狀,如(3,3) full_value: 張量的值7、torch.arange()功能: 創建等差1維張量 注意事項: 數值區間[start,end) start: 數列起始值 end: 數列結束值 step: 數列公差,默認為1torch.arange(start=0,end,step=1,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)8、torch.linspace()功能: 創建均分的1維張量 注意事項: 數值區間[start,end] start: 數列起始值 end: 數列結束值 steps: 數列長度torch.linspace(start,end,steps=100,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)9、torch.logspace()功能: 創建對數均分的1維張量 注意事項: 長度為steps,底為basestart: 數列的起始值 end: 數列的結束值 steps: 數列長度 base: 對數函數的底,默認為10torch.logspace(start,end,steps=100,base=10,out=None,dtype=None,layout=torch.strided,device=None,requres_grad=False)10、torch.eye()功能: 創建單位對角矩陣(2維張量) 注意事項: 默認為方陣 n: 矩陣行數 m: 矩陣列數

四、Tensor創建三:? 依據概率創建

1、torch.normal()功能: 生成正態分布(高斯分布)mean: 均值 std: 均方差四種模式: mean為標量 && std為標量 mean為標量 && std為張量 mean為張量 && std為標量 mean為張量 && std為張量2、torch.randn()torch.randn(*size,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)3、torch.randn_like()功能: 生成標準正態分布 size: 張量的形狀4、torch.rand()torch.rand(*size,out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)5、torch.rand_like()功能: 在區間[0,1)上,生成均勻分布6、torch.randint()torch.randint(low=0,high,size,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)7、torch.randint_like()功能: 區間[low,high)生成整數均勻分布 size: 張量的形狀8、torch.randperm()功能: 生成從0到n-1的隨機排列torch.randperm(n, out=None,dtype=torch.int64,layout=torch.strided,device=None,requires_grad=False)9、torch.bernoulli()功能: 以input為概率,生成伯努力分布(0-1分布,兩點分布) input:概率值torch.bernoulli(input,*,generator=None,out=None)

?

總結

以上是生活随笔為你收集整理的张量简介与创建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。