欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyTorch中g(shù)rid_sample的使用及說明

 更新時間:2023年02月01日 09:15:52   作者:咆哮的阿杰  
這篇文章主要介紹了PyTorch中g(shù)rid_sample的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

關(guān)于grid_sample的使用

grid_sample底層是應(yīng)用雙線性插值,把輸入的tensor轉(zhuǎn)換為指定大小。

那它和interpolate有啥區(qū)別呢?

interpolate是規(guī)則采樣(uniform),但是grid_sample的轉(zhuǎn)換方式,內(nèi)部采點的方式并不是規(guī)則的,是一種更為靈活的方式。

torch.nn.functional.grid_sample(input, grid, mode=‘bilinear', padding_mode=‘zeros')
  • input:輸入tensor, shape為 [N, C, H_in, W_in]
  • grid:一個field flow, shape為[N, H_out, W_out, 2],最后一個維度是每個grid(H_out_i, W_out_i)在input的哪個位置的鄰域去采點。數(shù)值范圍被歸一化到[-1,1]。

下面將介紹具體的例子

import torch
from torch.nn import functional as F


inp = torch.ones(1, 1, 4, 4)

# 目的是得到一個 長寬為20的tensor
out_h = 20
out_w = 20
 # grid的生成方式等價于用mesh_grid
new_h = torch.linspace(-1, 1, out_h).view(-1, 1).repeat(1, out_w)
new_w = torch.linspace(-1, 1, out_w).repeat(out_h, 1)
grid = torch.cat((new_h.unsqueeze(2), new_w.unsqueeze(2)), dim=2)
grid = grid.unsqueeze(0)

outp = F.grid_sample(inp, grid=grid, mode='bilinear')
print(outp.shape)  #torch.Size([1, 1, 20, 20])

在上面的例子中,我們將一個大小為4x4的tensor 轉(zhuǎn)換為了一個20x20的。

grid的大小指定了輸出大小,每個grid的位置是一個(x,y)坐標,其值來自于:輸入input的(x,y)中 的四鄰域插值得到的。

在這里插入圖片描述

圖片來自于SFnet(eccv2020)。flow field是grid, low_resolution是input, high resolution是output。

至于grid的值是控制在-1,1的。那如何對應(yīng)在input上呢。

這個來看一下pytorch的底層源碼。

第66行到71行,獲取到了grid的x和y,之后對其做了新的變換,變到input的坐標系下了。

IW和IH是input的寬和高。

        real ix = THTensor_fastGet4d(grid, n, h, w, 0);
        real iy = THTensor_fastGet4d(grid, n, h, w, 1);

        // normalize ix, iy from [-1, 1] to [0, IH-1] & [0, IW-1]
        ix = ((ix + 1) / 2) * (IW-1);
        iy = ((iy + 1) / 2) * (IH-1);

torch.nn.functional.grid_sample() 注意點

用法: 主要用于采樣,一般是使用bilinear根據(jù)grid的坐標采樣

F.grid_sample(img, grid, align_corners=True)
  • img是采樣的空間,grid是生成的網(wǎng)格坐標。
  • grid通常由torch.meshgrid()生成,且要映射到(-1,1)之間,如:
dx = torch.linspace(-1,1, 9)
dy = torch.linspace(-1, 1,7)
coords = torch.stack(torch.meshgrid(dy, dx), axis=-1) ? #[dy*dx*2]

輸入輸出情況:

假如是4D 的input:

img.shape : [B,C,H_in,W_in]
grid.shape: [B,H_out,W_out,2]
out: [B,C,H_out,W_out]

細節(jié)

1.為什么meshgrid生成坐標的時候,stack成coords時需要逆序(第一層是y,第二層是x)?

Ans:采樣的時候,在img上取點,坐標是根據(jù)grid來的,grid[:,:,0]是W維度的坐標,grid[:,:,1]是H維度的坐標,所以這個地方需要注意,是反過來的

2.grid的形狀僅僅影響output的形狀,直接決定取點的還是坐標,所以尤其要注意grid坐標疊。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 零基礎(chǔ)寫python爬蟲之爬蟲的定義及URL構(gòu)成

    零基礎(chǔ)寫python爬蟲之爬蟲的定義及URL構(gòu)成

    俗話說工欲善其事必先利其器,作為本系列文章的第一篇,我們同樣也需要先利其器,先把爬蟲的定義以及寫爬蟲所需要的基礎(chǔ)知識先介紹給大家。
    2014-11-11
  • python打印直角三角形與等腰三角形實例代碼

    python打印直角三角形與等腰三角形實例代碼

    這篇文章主要給大家介紹了關(guān)于python打印直角三角形與等腰三角形的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • 教你在Excel中調(diào)用Python腳本實現(xiàn)數(shù)據(jù)自動化處理的方法

    教你在Excel中調(diào)用Python腳本實現(xiàn)數(shù)據(jù)自動化處理的方法

    Excel是全世界最流行的編程語言,Excel已經(jīng)可以實現(xiàn)編程語言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣,今天通過本文給大家介紹下Python數(shù)據(jù)自動化處理的相關(guān)知識,感興趣的朋友一起看看吧
    2022-02-02
  • Python中np.argmax()函數(shù)用法示例

    Python中np.argmax()函數(shù)用法示例

    np.argmax是用于取得數(shù)組中每一行或者每一列的的最大值,常用于機器學習中獲取分類結(jié)果、計算精確度等,下面這篇文章主要給大家介紹了關(guān)于Python中np.argmax()函數(shù)用法的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Python中閉包與lambda的作用域解析

    Python中閉包與lambda的作用域解析

    這篇文章主要介紹了Python中閉包與lambda的作用域解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python自動化辦公之定時發(fā)送郵件的實現(xiàn)

    Python自動化辦公之定時發(fā)送郵件的實現(xiàn)

    python中的schedule模塊可以使我們方便簡單的使用定時任務(wù),即在特定的時間自動的執(zhí)行一些任務(wù)的功能,本文將用這一模塊實現(xiàn)郵件自動發(fā)送,需要的可以參考一下
    2022-05-05
  • python實現(xiàn)人性化顯示金額數(shù)字實例詳解

    python實現(xiàn)人性化顯示金額數(shù)字實例詳解

    在本篇內(nèi)容里小編給大家整理了關(guān)于python實現(xiàn)人性化顯示金額數(shù)字實例內(nèi)容,需要的朋友們可以參考下。
    2020-09-09
  • 解決python3.x安裝numpy成功但import出錯的問題

    解決python3.x安裝numpy成功但import出錯的問題

    這篇文章主要介紹了解決python3.x安裝numpy成功但import出錯的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • python中字典的常見操作總結(jié)1

    python中字典的常見操作總結(jié)1

    這篇文章主要介紹了python中字典的常見操作總結(jié),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • 使用Python字典實現(xiàn)詞頻統(tǒng)計的方法

    使用Python字典實現(xiàn)詞頻統(tǒng)計的方法

    在Python中,利用字典進行詞頻統(tǒng)計是一種常見且強大的方式,通過對文本進行預處理并使用字典數(shù)據(jù)結(jié)構(gòu),可以輕松地統(tǒng)計文本中每個單詞出現(xiàn)的頻率,下面將詳細解釋這個過程,并提供多種例子,以幫助你更好地理解并應(yīng)用這一技術(shù),需要的朋友可以參考下
    2023-12-12

最新評論