在解讀代碼程序中遇到了問題,DCFnet目標跟蹤演算法中有一段代碼,感覺很迷茫~
class DCFNet(nn.Module):
def __init__(self, config=None):
super(DCFNet, self).__init__()
self.feature = DCFNetFeature()
self.yf = config.yf.clone()
self.lambda0 = config.lambda0
def forward(self, z, x):
z = self.feature(z)
x = self.feature(x)
zf = torch.rfft(z, signal_ndim=2)
xf = torch.rfft(x, signal_ndim=2)
kzzf = torch.sum(torch.sum(zf ** 2, dim=4, keepdim=True), dim=1, keepdim=True)
kxzf = torch.sum(complex_mulconj(xf, zf), dim=1, keepdim=True)
alphaf = self.yf.to(device=z.device) / (kzzf + self.lambda0) # very Ugly
response = torch.irfft(complex_mul(kxzf, alphaf), signal_ndim=2)
return response
重點是那兩行,似乎沒有進行任何賦值和運算,下面又用到了其中的方法,感覺完全沒有意義啊,求大神給解答一下
uj5u.com熱心網友回復:
alphaf = self.yf.to(device=z.device) / (kzzf + self.lambda0) # very Ugly這里就是使用啊!
self.yf.to(device=z.device) =equal to self.yf() #可以這樣理解
self.lambda0 這個是要具體看看 config.lambda0 里面吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/65267.html
標籤:人工智能技術
