<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【小白學(xué)PyTorch】10.pytorch常見運(yùn)算詳解

          共 4294字,需瀏覽 9分鐘

           ·

          2021-09-19 06:59

          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          <<小白學(xué)PyTorch>>

          參考目錄:

          • 1 矩陣與標(biāo)量

          • 2 哈達(dá)瑪積

          • 3 矩陣乘法

          • 4 冪與開方

          • 5 對(duì)數(shù)運(yùn)算

          • 6 近似值運(yùn)算

          • 7 剪裁運(yùn)算

          這一課主要是講解PyTorch中的一些運(yùn)算,加減乘除這些,當(dāng)然還有矩陣的乘法這些。這一課內(nèi)容不多,作為一個(gè)知識(shí)儲(chǔ)備。在后續(xù)的內(nèi)容中,有用PyTorch來獲取EfficientNet預(yù)訓(xùn)練模型以及一個(gè)貓狗分類的實(shí)戰(zhàn)任務(wù)教學(xué),EfficientNet是13課,貓狗分類是14課,11課是MobileNet詳解和PyTorch代碼解析,12課是SENet詳解和PyTorch代碼解析(因?yàn)镋fficientNet是基于這兩個(gè)網(wǎng)絡(luò)構(gòu)成的)。再往后我計(jì)劃整理一些這兩年比較優(yōu)秀的論文和代碼,一些提升準(zhǔn)確率的有效的技巧等,當(dāng)然PyTorch的各種優(yōu)化器我還沒有細(xì)講(不過一般都是SGDM了)。

          希望大家喜歡這個(gè)系列~也真心希望大家可以幫忙宣傳擴(kuò)散給想學(xué)習(xí)PyTorch的朋友,小編在這里感謝各位了。

          加減乘除就不多說了,+-*/


          1 矩陣與標(biāo)量


          這個(gè)是矩陣(張量)每一個(gè)元素與標(biāo)量進(jìn)行操作。

          import torch
          a = torch.tensor([1,2])
          print(a+1)
          >>> tensor([23])


          2 哈達(dá)瑪積


          這個(gè)就是兩個(gè)相同尺寸的張量相乘,然后對(duì)應(yīng)元素的相乘就是這個(gè)哈達(dá)瑪積,也成為element wise。

          a = torch.tensor([1,2])
          b = torch.tensor([2,3])
          print(a*b)
          print(torch.mul(a,b))
          >>> tensor([26])
          >>> tensor([26])

          這個(gè)torch.mul()*是等價(jià)的。

          當(dāng)然,除法也是類似的:

          a = torch.tensor([1.,2.])
          b = torch.tensor([2.,3.])
          print(a/b)
          print(torch.div(a/b))
          >>> tensor([0.50000.6667])
          >>> tensor([0.50000.6667])

          我們可以發(fā)現(xiàn)的torch.div()其實(shí)就是/, 類似的:torch.add就是+,torch.sub()就是-,不過符號(hào)的運(yùn)算更簡單常用。


          3 矩陣乘法


          如果我們想實(shí)現(xiàn)線性代數(shù)中的矩陣相乘怎么辦呢?

          這樣的操作有三個(gè)寫法:

          • torch.mm()
          • torch.matmul()
          • @,這個(gè)需要記憶,不然遇到這個(gè)可能會(huì)挺蒙蔽的
          a = torch.tensor([1.,2.])
          b = torch.tensor([2.,3.]).view(1,2)
          print(torch.mm(a, b))
          print(torch.matmul(a, b))
          print(a @ b)

          輸出結(jié)果:

          tensor([[2.3.],
                  [4.6.]])
          tensor([[2.3.],
                  [4.6.]])
          tensor([[2.3.],
                  [4.6.]])

          這是對(duì)二維矩陣而言的,假如參與運(yùn)算的是一個(gè)多維張量,那么只有torch.matmul()可以使用。等等,多維張量怎么進(jìn)行矩陣的懲罰?在多維張量中,參與矩陣運(yùn)算的其實(shí)只有后兩個(gè)維度,前面的維度其實(shí)就像是索引一樣,舉個(gè)例子:

          a = torch.rand((1,2,64,32))
          b = torch.rand((1,2,32,64))
          print(torch.matmul(a, b).shape)
          >>> torch.Size([126464])

          可以看到,其實(shí)矩陣乘法的時(shí)候,看后兩個(gè)維度: 乘上 ,得到一個(gè)的矩陣。前面的維度要求相同,像是索引一樣,決定哪兩個(gè)相乘。

          小提示:

          a = torch.rand((3,2,64,32))
          b = torch.rand((1,2,32,64))
          print(torch.matmul(a, b).shape)
          >>> torch.Size([326464])

          這樣也是可以相乘的,因?yàn)檫@里涉及一個(gè)自動(dòng)傳播Broadcasting機(jī)制,這個(gè)在后面會(huì)講,這里就知道,如果這種情況下,會(huì)把b的第一維度復(fù)制3次 ,然后變成和a一樣的尺寸,進(jìn)行矩陣相乘。


          4 冪與開方


          print('冪運(yùn)算')
          a = torch.tensor([1.,2.])
          b = torch.tensor([2.,3.])
          c1 = a ** b
          c2 = torch.pow(a, b)
          print(c1,c2)
          >>> tensor([1.8.]) tensor([1.8.])

          和上面一樣,不多說了。開方運(yùn)算可以用torch.sqrt(),當(dāng)然也可以用a**(0.5)。


          5 對(duì)數(shù)運(yùn)算


          在上學(xué)的時(shí)候,我們知道ln是以e為底的,但是在pytorch中,并不是這樣

          pytorch中l(wèi)og是以e自然數(shù)為底數(shù)的,然后log2和log10才是以2和10為底數(shù)的運(yùn)算。

          import numpy as np
          print('對(duì)數(shù)運(yùn)算')
          a = torch.tensor([2,10,np.e])
          print(torch.log(a))
          print(torch.log2(a))
          print(torch.log10(a))
          >>> tensor([0.69312.30261.0000])
          >>> tensor([1.00003.32191.4427])
          >>> tensor([0.30101.00000.4343]) 


          6 近似值運(yùn)算


          • .ceil() 向上取整
          • .floor()向下取整
          • .trunc()取整數(shù)
          • .frac()取小數(shù)
          • .round()四舍五入
          a = torch.tensor(1.2345)
          print(a.ceil())
          >>>tensor(2.)
          print(a.floor())
          >>> tensor(1.)
          print(a.trunc())
          >>> tensor(1.)
          print(a.frac())
          >>> tensor(0.2345)
          print(a.round())
          >>> tensor(1.)


          7 剪裁運(yùn)算


          這個(gè)是讓一個(gè)數(shù),限制在你自己設(shè)置的一個(gè)范圍內(nèi)[min,max],小于min的話就被設(shè)置為min,大于max的話就被設(shè)置為max。這個(gè)操作在一些對(duì)抗生成網(wǎng)絡(luò)中,好像是WGAN-GP,通過強(qiáng)行限制模型的參數(shù)的值。

          a = torch.rand(5)
          print(a)
          print(a.clamp(0.3,0.7))

          輸出為:

          tensor([0.52710.69240.99190.00950.0340])
          tensor([0.52710.69240.70000.30000.3000])



          好消息,小白學(xué)視覺團(tuán)隊(duì)的知識(shí)星球開通啦,為了感謝大家的支持與厚愛,團(tuán)隊(duì)決定將價(jià)值149元的知識(shí)星球現(xiàn)時(shí)免費(fèi)加入。各位小伙伴們要抓住機(jī)會(huì)哦!


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 18
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人成人网站 | 国产精品内射婷婷二级一 | 精品无码秘 人妻一区二区三区 | 亚洲日韩中文字幕在线观看 | 伊人精品在线 |