PyTorch入門(三)PyTorch常用操作

2021-10-02 16:28:05 字數 1096 閱讀 4812

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...