迴歸問題:
計算loss
更新w,b1
迭代
--------------------------------------------------------------------------------------------
minst
d1,d2,d3就是 層H1,H2,H3的維度
預測值的計算公式
激活函數
argmax最大值索引![]()
____________________第四章:pytorch基礎--------------------------
數據類型:
1.標量:維度=0(不用[]創建的就是標量)
-----------------------------------1維的張量 =======
張量:
不使用 [] 創建,隨機初始化:
使用numpy創建:
_______________________dimension=2 維度爲2-------------------------------
__________dimension=3 維度爲3---------------
__________dimension=4 維度爲4---------------
常用方法 : dim:維度
創建張量-----------------
未給初始值的創建方法 接口開頭大T,注意區分
問題:會出現非常大 或非常小的數
隨機初始化
正態分佈
全部賦值爲x
等差數列 不包含最後一個數
linspace:包含最後一個數 steps切成多少份
其他: eye對角矩陣
隨機種子
------------------------切片------------------------------------------------------
索引
切片
注意:[:2]表示0,1 不包含2
三個點:代表取所有
masked_select()
注意:會拉成一維 長度取決於篩選出多少
--------------------------------------維度變換------------------
1.view和reshape 在torch中作用一樣
2.squeeze壓縮維度 unsqueeze展開維度
unsqueeze:增加維度
取值範圍【-dim-1,dim+1)
正索引在之前插入 負索引在之後插入
例子:
squeeze:參數:要刪減的維度 (省略:在維度上是1的全刪掉)
注:只能刪掉1的維度,不是1的刪不掉
-----------------------------------------------------------------------------------------------------------------------------------
3.擴張:expand或repeat
區別:repeat複製了數據
expand:
expend_as(A)擴成跟A一樣的維度
只能擴張原來是1的維度位置
-1表示跟原來一致
repeat:參數意義:每個維度要拷貝的次數
-------------------------------------------------------------------------
4.轉置
.t 只能用於2維
transpose 交換兩個維度
permute把原來維度按索引的形式重排列
-------------------------------------------------------------------------------------------------------------------------------------------------------
pytroch的自帶功能 Broadcasting:自動擴展
原理圖:
--------------------------合併----------------------------------------------
cat
非cat的維度上必須一致
stack:插入一個新的維度(相當於插入了一個新的語義)
所有維度必須相同
--------------------------------分割-------------------------------------------------
split
第一種:直接給一個數 表示拆分成n塊 ,每一份長度1,其中n=2/1=2
第二種:給一個列表 表示每一份佔多少
【1,1】:第一個長1 第二個長1
【3,2】:
chunk:拆分成n塊
-----------------------------------------運算-------------------
根據broadcasting自動填充,把【4】填充爲【3,4】
加
減
a-b
乘
a*b(相同位置乘)
除
a/b
-----------矩陣相乘
.mm只適合2d的矩陣相乘(推薦還是使用matmul)
@符號 同.matmul
''
4維矩陣相乘:乘的是最後的維度
前面維度不同的情況,使用broadcasting填充
【4,1,64,32】填充爲【4,3,64,32】
pow次方運算------------------------
使用full創建全是3的矩陣,再做平方
開方sqrt()------------------
exp和log-------------------------
exp()對矩陣做以e爲底的運算
近似值運算------
floor下取整,ceil上取整 ,trunc取整數部分,frac取小數部分
round()四捨五入
clamp限制範圍-------------------------------
生成0~15的矩陣,找出最大值和中值
max 、median
大於10 的替換爲10
-------------------------------統計屬性-----------------------------------
norm範數
最小 最大 平均 累乘
累加
argmin,argmax
最大最小索引:不帶參數先拉成一維 再找索引
添加dim屬性
max()argmax() 添加dim屬性
添加keepdim屬性
topk最大的n個,largest=False:反向
kthvalue 第n小
比較符-----------------------------------------------------------------------
torch中沒有ture flase使用0,1代替 類型uint8
eq()和equal()
eq返回每個位置是否相等
equal返回整個矩陣是否相等
where-------------------------------------------------------------------------
根據condition的值決定取A矩陣還是B矩陣的相應元素
1的話取A的值
gather======================================