Pytorch 笔记——tensor
tensor和numpy中的ndarray很相似,唯一的不同是tensor可以應用在GPU上,來加速計算。
1?創建tensor
| randn(size) | 創建一個標準正態分布內隨機的矩陣 | |
| zeros(size) | 全零矩陣 | |
| tensor(list) | 創建一個內容為參數的tensor | |
| linspace | 同numpy | |
| randperm | 返回一個0到n-1的數組 |
基本上創建的這些函數都有一個對應的like函數(randn_like,zeros_like…)來創建一個size和形參一樣的tensor
2?tensor和ndarray的轉換
無論誰轉換成誰,轉換的tensor和ndarray都是另一個的引用,要變一起變。
2.1?tensor->ndarray
2.2?ndarray->tensor
3?cuda和cpu的tensor切換
4 一些關于tensor的運算
很多運算符都在末尾有一個_,表示inplace操作
| 加法 | + | |
| tensor.add | ||
| torch.add | ||
| 修改一個的值 (很多運算符都在末尾有一個_,表示inplace操作 |
5. torch的函數
很多函數 torch.func(tensor)和tensor.func()是等價的。
size() | tensor的形狀 | |
view | torch里面的“reshape” | |
item | 如果tensor中只有一個元素的時候,使用這個函數獲取這個 數值 | |
abs | 絕對值 | |
sin | ||
mm | 矩陣相乘 | |
pow | 冪 | |
cat | 合并數組 | axis=0 沿著列的方向[1…n][0] axis=1 沿著行的方向[0][1;;;n] axis=0 (從左往右數)第0個坐標的元素疊加,其他坐標的元素不變 axis=1 第1個坐標的元素疊加,其他坐標的元素不變 |
max | 如果又axis參數的話,返回的第一個下標是所有的最大值,第二個下標是最大值對應的index。 axis=0 [1~n][0]里面找到最大的一個, 也就是第零個坐標的參數變化(去比較),其他坐標的參數不變 axis=1 [0][1~n]里面找到最大的一個, 也就是第一個坐標的參數變化(去比較),其他坐標的參數不變 | |
narrow() | 截取tensor的一部分 | torch.narrow(input, dim, start, length) ?返回的部分和input 共享內存 ? input 需要被截取的tensor dim 沿著那個維度截取 start 起始截取下標 length? 截取多長的 ? (沿著第0個下標截取)? ? ? (沿著第1個下標截取) |
squeeze() | 我們首先創建一個維度為(1,2,3)的tensor 然后對他squeeze 只有squeeze對應的維度為1的時候,我們才會把這個維度去掉,不然的話維度保持不變 | |
unsqueeze | ||
masked_fill(data,x) | 將data為True的相應位置的值替換為x |
?numel | tensor中元素的個數 | |
permute? | tensor維度換位 | (2,0,1)的意思是,維度變換成:(原來的第二個,原來的第0個,原來的第1個)? |
t | 轉置 | |
| logical_not | 邏輯取反 |
總結
以上是生活随笔為你收集整理的Pytorch 笔记——tensor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 9 回文数
- 下一篇: pytorch笔记——autograd和