最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

支持PyTorch的einops張量操作神器用法示例詳解

 更新時(shí)間:2021年11月01日 17:26:06   作者:木盞  
這篇文章主要為大家介紹了支持PyTorch的einops張量操作神器用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

今天做visual transformer研究的時(shí)候,發(fā)現(xiàn)了einops這么個(gè)神兵利器,決定大肆安利一波。

先看鏈接:https://github.com/arogozhnikov/einops

安裝:

pip install einops

基礎(chǔ)用法

einops的強(qiáng)項(xiàng)是把張量的維度操作具象化,讓開(kāi)發(fā)者“想出即寫(xiě)出”。舉個(gè)例子:

from einops import rearrange
 
# rearrange elements according to the pattern
output_tensor = rearrange(input_tensor, 'h w c -> c h w')

用'h w c -> c h w'就完成了維度調(diào)換,這個(gè)功能與pytorch中的permute相似。但是,einops的rearrange玩法可以更高級(jí):

from einops import rearrange
import torch
 
a = torch.randn(3, 9, 9)  # [3, 9, 9]
output = rearrange(a, 'c (r p) w -> c r p w', p=3)
print(output.shape)   # [3, 3, 3, 9]

這就是高級(jí)用法了,把中間維度看作r×p,然后給出p的數(shù)值,這樣系統(tǒng)會(huì)自動(dòng)把中間那個(gè)維度拆解成3×3。這樣就完成了[3, 9, 9] -> [3, 3, 3, 9]的維度轉(zhuǎn)換。

這個(gè)功能就不是pytorch的內(nèi)置功能可比的。

除此之外,還有reduce和repeat,也是很好用。

from einops import repeat
import torch
 
a = torch.randn(9, 9)  # [9, 9]
output_tensor = repeat(a, 'h w -> c h w', c=3)  # [3, 9, 9]

指定c,就可以指定復(fù)制的層數(shù)了。

再看reduce:

from einops import reduce
import torch
 
a = torch.randn(9, 9)  # [9, 9]
output_tensor = reduce(a, 'b c (h h2) (w w2) -> b h w c', 'mean', h2=2, w2=2)

這里的'mean'指定池化方式。 相信你看得懂,不懂可留言提問(wèn)~

高級(jí)用法 

einops也可以嵌套在pytorch的layer里,請(qǐng)看:

# example given for pytorch, but code in other frameworks is almost identical  
from torch.nn import Sequential, Conv2d, MaxPool2d, Linear, ReLU
from einops.layers.torch import Rearrange
 
model = Sequential(
    Conv2d(3, 6, kernel_size=5),
    MaxPool2d(kernel_size=2),
    Conv2d(6, 16, kernel_size=5),
    MaxPool2d(kernel_size=2),
    # flattening
    Rearrange('b c h w -> b (c h w)'),  
    Linear(16*5*5, 120), 
    ReLU(),
    Linear(120, 10), 
)

這里的Rearrange是nn.module的子類,直接可以當(dāng)作網(wǎng)絡(luò)層放到模型里~

一個(gè)字,絕。

以上就是支持PyTorch的einops張量操作神器用法示例詳解的詳細(xì)內(nèi)容,更多關(guān)于einops張量操作用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)LR1文法的完整實(shí)例代碼

    Python實(shí)現(xiàn)LR1文法的完整實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)LR1文法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果

    python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果

    這篇文章主要介紹了python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果的方法,是比較實(shí)用的技巧,可將掃描結(jié)果寫(xiě)入數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2014-10-10
  • django rest framework 過(guò)濾時(shí)間操作

    django rest framework 過(guò)濾時(shí)間操作

    這篇文章主要介紹了django rest framework 過(guò)濾時(shí)間操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Python實(shí)現(xiàn)智慧校園自動(dòng)評(píng)教全新版

    Python實(shí)現(xiàn)智慧校園自動(dòng)評(píng)教全新版

    上一次的智慧校園自動(dòng)評(píng)教是用的selenium庫(kù)去模擬人去對(duì)瀏覽器進(jìn)行點(diǎn)擊操作,雖然比手動(dòng)評(píng)教要快,但是效率還是不高.從而想去嘗試重新寫(xiě)一份不用selenium的評(píng)教方案,功夫不負(fù)有心人,最終成功了,需要的朋友可以參考下
    2021-06-06
  • Jupyter Notebook讀取csv文件出現(xiàn)的問(wèn)題及解決

    Jupyter Notebook讀取csv文件出現(xiàn)的問(wèn)題及解決

    這篇文章主要介紹了Jupyter Notebook讀取csv文件出現(xiàn)的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python celery分布式任務(wù)隊(duì)列的使用詳解

    python celery分布式任務(wù)隊(duì)列的使用詳解

    這篇文章主要介紹了python celery分布式任務(wù)隊(duì)列的使用詳解,Celery 是一個(gè) 基于python開(kāi)發(fā)的分布式異步消息任務(wù)隊(duì)列,通過(guò)它可以輕松的實(shí)現(xiàn)任務(wù)的異步處理, 如果你的業(yè)務(wù)場(chǎng)景中需要用到異步任務(wù),就可以考慮使用celery,需要的朋友可以參考下
    2019-07-07
  • C#返回當(dāng)前系統(tǒng)所有可用驅(qū)動(dòng)器符號(hào)的方法

    C#返回當(dāng)前系統(tǒng)所有可用驅(qū)動(dòng)器符號(hào)的方法

    這篇文章主要介紹了C#返回當(dāng)前系統(tǒng)所有可用驅(qū)動(dòng)器符號(hào)的方法,涉及C#操作系統(tǒng)硬件驅(qū)動(dòng)的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • python可視化實(shí)現(xiàn)KNN算法

    python可視化實(shí)現(xiàn)KNN算法

    這篇文章主要為大家詳細(xì)介紹了python可視化實(shí)現(xiàn)KNN算法,通過(guò)繪圖工具M(jìn)atplotlib包可視化實(shí)現(xiàn)機(jī)器學(xué)習(xí)中的KNN算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 使用Numpy讀取CSV文件,并進(jìn)行行列刪除的操作方法

    使用Numpy讀取CSV文件,并進(jìn)行行列刪除的操作方法

    今天小編就為大家分享一篇使用Numpy讀取CSV文件,并進(jìn)行行列刪除的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python通過(guò)ElementTree操作XML獲取結(jié)點(diǎn)讀取屬性美化XML

    python通過(guò)ElementTree操作XML獲取結(jié)點(diǎn)讀取屬性美化XML

    本文講解如何通過(guò)ElementTree解析XML,獲取兒子結(jié)點(diǎn)、插入兒子結(jié)點(diǎn)、操作屬性、美化XML
    2013-12-12

最新評(píng)論

兴文县| 宁武县| 昭苏县| 托克托县| 牟定县| 资溪县| 崇礼县| 天门市| 元朗区| 如东县| 太康县| 合作市| 故城县| 铜陵市| 扶沟县| 宣恩县| 衡山县| 普宁市| 蒙自县| 琼中| 舒兰市| 云霄县| 安阳市| 安陆市| 蚌埠市| 蒙城县| 黄山市| 迁安市| 青川县| 江津市| 台州市| 宝应县| 准格尔旗| 多伦县| 蓬溪县| 横峰县| 宿松县| 固原市| 桐梓县| 盘锦市| 泸州市|