Pytorch中的masked_fill基本知識(shí)操作
1. 基本知識(shí)
基本的原理知識(shí)如下:
輸入張量和掩碼:
masked_fill 接受兩個(gè)主要參數(shù):一個(gè)輸入張量和一個(gè)布爾掩碼
掩碼的形狀必須與輸入張量相同,True 表示需要填充的位置,F(xiàn)alse 表示保持原值
掩碼操作:
在執(zhí)行 masked_fill 操作時(shí),函數(shù)會(huì)檢查掩碼中每個(gè)元素的值
如果掩碼對(duì)應(yīng)的位置為 True,則在輸出張量中填充指定的值;
如果為 False,則保留輸入張量中對(duì)應(yīng)位置的值
輸出結(jié)果:
最終生成的新張量包含了在掩碼位置上被替換的值,其余位置保持原樣
在代碼邏輯上:
創(chuàng)建掩碼:
mask 是一個(gè)布爾張量,標(biāo)識(shí)了哪些位置需要填充:
[[False, True, False], [True, False, True], [False, False, True]]
執(zhí)行 masked_fill:
當(dāng)調(diào)用 tensor.masked_fill(mask, -1) 時(shí),PyTorch 會(huì)遍歷掩碼中的每個(gè)元素:對(duì)于 mask 中的每個(gè) True 值,tensor 在對(duì)應(yīng)位置的值會(huì)被替換為 -1,對(duì)于 False 值,保持原值不變
masked_fill 操作是基于 C/C++ 的實(shí)現(xiàn),因此在處理大規(guī)模數(shù)據(jù)時(shí)性能較高。常用于深度學(xué)習(xí)模型中的數(shù)據(jù)預(yù)處理,比如在填充序列、處理缺失值或標(biāo)記特定條件的數(shù)據(jù)時(shí)
2. Demo
Demo 1: 基本用法
import torch # 創(chuàng)建一個(gè) 3x3 的張量 tensor = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 創(chuàng)建一個(gè)掩碼,標(biāo)記要填充的位置 mask = torch.tensor([[False, True, False], [True, False, True], [False, False, True]]) # 使用 masked_fill 填充掩碼位置為 -1 result = tensor.masked_fill(mask, -1) print("原始張量:") print(tensor) print("\n填充后的張量:") print(result)
截圖如下:
Demo 2: 與條件結(jié)合使用
import torch # 創(chuàng)建一個(gè)隨機(jī)張量 tensor = torch.randn(3, 3) # 創(chuàng)建掩碼:標(biāo)記負(fù)值的位置 mask = tensor < 0 # 將負(fù)值位置填充為 0 result = tensor.masked_fill(mask, 0) print("原始張量:") print(tensor) print("\n填充后的張量 (負(fù)值填充為 0):") print(result)
截圖如下:
Demo 3: 結(jié)合計(jì)算
import torch # 創(chuàng)建一個(gè)張量 tensor = torch.tensor([[10, 20, 30], [40, 50, 60], [70, 80, 90]]) # 創(chuàng)建掩碼:標(biāo)記大于 50 的位置 mask = tensor > 50 # 用 999 填充大于 50 的位置 result = tensor.masked_fill(mask, 999) print("原始張量:") print(tensor) print("\n填充后的張量 (大于 50 的位置填充為 999):") print(result)
截圖如下:
到此這篇關(guān)于Pytorch中的masked_fill基本知識(shí)的文章就介紹到這了,更多相關(guān)Pytorch masked_fill內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3 adb 獲取設(shè)備序列號(hào)的實(shí)現(xiàn)
這篇文章主要介紹了python3 adb 獲取設(shè)備序列號(hào)的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06python3.5+tesseract+adb實(shí)現(xiàn)西瓜視頻或頭腦王者輔助答題
這篇文章主要介紹了python3.5+tesseract+adb實(shí)現(xiàn)西瓜視頻或頭腦王者輔助答題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01Python實(shí)現(xiàn)的調(diào)用C語(yǔ)言函數(shù)功能簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)的調(diào)用C語(yǔ)言函數(shù)功能,結(jié)合簡(jiǎn)單實(shí)例形式分析了Python使用ctypes模塊調(diào)用C語(yǔ)言函數(shù)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2019-03-03使用Python實(shí)現(xiàn)跳一跳自動(dòng)跳躍功能
這篇文章主要介紹了使用Python實(shí)現(xiàn)跳一跳自動(dòng)跳躍功能,本文圖文并茂通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07python簡(jiǎn)單實(shí)例訓(xùn)練(21~30)
上篇文章給大家介紹了python簡(jiǎn)單實(shí)例訓(xùn)練的1-10,這里繼續(xù)為大家介紹python的一些用法,希望大家每個(gè)例子都打出來(lái)測(cè)試一下2017-11-11PyTorch中的參數(shù)類torch.nn.Parameter()詳解
這篇文章主要給大家介紹了關(guān)于PyTorch中torch.nn.Parameter()的相關(guān)資料,要內(nèi)容包括基礎(chǔ)應(yīng)用、實(shí)用技巧、原理機(jī)制等方面,文章通過(guò)實(shí)例介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02淺談django2.0 ForeignKey參數(shù)的變化
今天小編就為大家分享一篇淺談django2.0 ForeignKey參數(shù)的變化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08