1. 程式人生 > 其它 >torch.nn.functional中的interpolate插值函式

torch.nn.functional中的interpolate插值函式

技術標籤:python零散知識總結python深度學習

今年是農曆牛年第一天,在家的生活不快樂,那邊部落格學習叭。

interpolate函式

def forward(self, input1, input2=[0,0,0,0]):
        out0 = F.relu(self.bn0(self.conv0(input1[0]+input2[0])), inplace=True)
        out0 = F.interpolate(out0, size=input1[1].size()[2:], mode='bilinear')
        out1 = F.relu(self.bn1(self.
conv1(input1[1]+input2[1]+out0)), inplace=True) out1 = F.interpolate(out1, size=input1[2].size()[2:], mode='bilinear') out2 = F.relu(self.bn2(self.conv2(input1[2]+input2[2]+out1)), inplace=True) out2 = F.interpolate(out2, size=input1[3].size()[2:], mode='bilinear') out3 =
F.relu(self.bn3(self.conv3(input1[3]+input2[3]+out2)), inplace=True) return out3

先放一段程式碼,大家不要暈,這是我第一次見到這個函式的使用。出現的場景是在如下圖所示的模組結構的forward部分。
在這裡插入圖片描述
不懂,那邊挽起袖子加油幹,查。

1、函式功能:實現一個插值功能,即常用的上取樣和下采樣。
2、插值種類:最近鄰插值、線性差值和雙線性插值等,包括基本數學中的差值方法。
3、函式輸入:輸入的張量可以具有多樣性:2D、3D、4D等都可以選擇,較為靈活。
4、函式引數:

引數代表含義
inputthe input tensor
sizeoutput spatial size
scale_factormultiplier for spatial size
mode‘nearest[default]’ ‘linear’ ‘bilinear’ ‘bicubic’ ‘trilinear’ ‘area’

函式執行:

#對於橫軸X和縱軸y上來進行插值擬合
x_new=list(np.arange(0, 15, 0.5))
y_new=list(f(x_new))
plt.plot(x,y,'r',label='original values')
plt.plot(x_new,y_new,'b',label='interpolated values')
plt.show()
plt.close()

參考部落格:https://blog.csdn.net/zhangjian2928/article/details/80310353