def
bilinear_kernel
(in_channels,out_channels,kernel_size)
:'''
return a bilinear kernel tensor ( tensor: (in_channels,out_channels,kernel_size,kernel_size) )
返回雙線性插值核,用來初始化反卷積層中卷積核的引數
'''#先生成一層雙線性插值核
factor =
(kernel_size +1)
//2if kernel_size %2==
1:center = factor -
1else
: center = factor -
0.5 og = np.ogrid[
:kernel_size,
:kernel_size]
fliter =(1
-abs
(og[0]
- center)
/ factor)*(
1-abs(og[1]
- center)
/ factor)
#此公式似懂非懂,難!!!
#賦值到每個卷積核的每個通道
weight = np.zeros(
(in_channels,out_channels,kernel_size,kernel_size)
,dtype=
'float32'
) weight[
range
(in_channels)
,range
(out_channels),:
,:]= fliter
return torch.from_numpy(weight)
#使用雙線性插值核來初始化反卷積層的引數
deconv = nn.convtranspose2d(3,
3,4,stride =
2,padding =1)
deconv.weight.data = bilinear_kernel(3,
3,4)
什麼是PyTorch,為何要使用PyTorch
pytorch 是torch7 團隊開發的,從它的名字就可以看出,其與torch 的不同之處在於pytorch 使用了python 作為開發語言。所謂 python first 同樣說明它是乙個以python 優先的深度學習框架,不僅能夠實現強大的gpu 加速,同時還支援動態神經網路,這是現在很多主...
pytorch入門學習(三) 神經網路
神經網路可以使用torch.nn包構建.autograd實現了反向傳播功能,但是直接用來寫深度學習的 在很多情況下還是稍顯複雜,torch.nn是專門為神經網路設計的模組化介面.nn構建於autograd之上,可用來定義和執行神經網路.nn.module是nn中最重要的類,可把它看成是乙個網路的封裝...
Pytorch入門 安裝
pytorch目前支援的平台有linux和osx,在pytorch官網上每種平台提供了conda pip source三種安裝方式,同時也可以根據有無gpu進行cuda安裝,在這裡以ubuntu14.04進行安裝學習。1.anaconda安裝配置 安裝過程參考我之前的anaconda tensorf...