torch.nn.functional中的interpolate插值函式
阿新 • • 發佈:2021-02-13
今年是農曆牛年第一天,在家的生活不快樂,那邊部落格學習叭。
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、函式引數:
引數 | 代表含義 |
---|---|
input | the input tensor |
size | output spatial size |
scale_factor | multiplier 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