Pytorch 張量濾波中值替換

2021-10-08 05:38:17 字數 1065 閱讀 8624

使用乙個小尺寸的值都為1張量對乙個大尺寸的張量進行中值濾波,將小尺寸張量對應卷乘大尺寸張量,並將卷乘得到的結果排序後將中值替換:

import torch

import numpy as np

defmedfilt

(volume)

: kernel_size = torch.ones(3,

3)w, h = volume.shape[0]

, volume.shape[1]

for i in

range

(h-3+1

):for j in

range

(w -3+

1): interim = kernel_size * volume[i:i+

3, j:j+3]

interim, indices = torch.sort(interim)

print

('3*3:'

,interim)

volume[i+1]

[j+1

]= interim[1]

[1]return volume

if __name__ ==

'__main__'

:# 建立乙個形如(b, c, h, w)的張量,對應pytorch神經網路輸入

a = torch.randint(2,

9,(2

,4,5

,5))

# 按 b 讀取,即一張張讀取

for i in

range

(a.shape[0]

):# a[i, 0, ...]相當於讀入的第i張影象,第0維的影象

print

('input:'

, a[i,0,

...]

) a[i,0,

...]

= medfilt(a[i,0,

...]

)print

('output:'

, a[i,0,

...]

)

pytorch 張量 張量的生成

張量的生成 import torch import numpy as np 使用tensor.tensor 函式構造張量 a torch.tensor 1.0,1.0 2.2 print a 獲取張量的維度 print 張量的維度 a.shape 獲取張量的形狀大小 print 張量的大小 a.si...

pytorch張量追蹤

torch.tensor 是這個包的核心類。如果設定它的屬性 requires grad 為 true,那麼它將會追蹤對於該張量的所有操作。當完成計算後可以通過呼叫 backward 來自動計算所有的梯度。這個張量的所有梯度將會自動累加到.grad屬性.要阻止乙個張量被跟蹤歷史,可以呼叫 detac...

中值濾波測試

小白又來記個筆記 當資料讀取之後 就開始對資料進行預處理 預處理中比較重要的乙個部分就是濾波 因為實際工況下得到的訊號肯定是混有雜訊的 從簡單的開始說起 比較簡單的濾波操作是中值濾波 中值濾波對緩慢變化的訊號中由於偶然因素引起的脈衝干擾有良好的濾波效果 這裡我用了師兄給我的實驗室測得訊號 沒有雜訊 ...