一,張量(Tensor)
所謂張量,其實就是一個多維數組,它是標量,向量,矩陣的高維拓展。
二,Tensor 與 Variable
Variable 是 torch.autograd 中的數據類型,主要用於封裝Tensor,進行自動求導。如下圖
data: 被包裝的Tensor
grad: data的梯度
grad_fn: 創建Tensor的Function,是自動求導的關鍵
requires_grad: 指示是否需要梯度
is_leaf: 指示是否爲葉子結點
但是從Pytorch0.4.0開始,Variable併入Tensor裏,變成下圖
dtype: 張量數據類型,如torch.FloatTensor, torch.cuda.FloatTensor(這個張量指在GPU上運行)
shape: 張量的形狀
deviece: 張量所在設備(CP或GPU),決定張量是否加速
三,張量的創建
1,直接創建
這裏舉個例子,創建一個tensor
運行後結果:
2,從一個Numpy數組來創建張量
舉一個例子
代碼運行完,你會發現由於共享內存,Nump數組的改變,會引起tensor的改變。同樣,tensor改變也會引起numpy改變。
3,依據數值創建Numpy數組
可能看完,感覺out有點難理解,下面舉個例子
運行後:
發現兩個的地址是一樣的,即t被賦給了out
除此之外,依據數值創建的還有
4,依概率分佈創建張量