# grid_sampler¶

paddle.fluid.layers. grid_sampler ( x, grid, name=None ) [源代码]

step 1：

```grid_x = 0.5 * (grid[:, :, :, 0] + 1) * (W - 1) grid_y = 0.5 * (grid[:, :, :, 1] + 1) * (H - 1)
```

step 2：

```  wn ------- y_n ------- en
|           |           |
|          d_n          |
|           |           |
x_w --d_w-- grid--d_e-- x_e
|           |           |
|          d_s          |
|           |           |
ws ------- y_s ------- wn

x_w = floor(x)              // west side x coord
x_e = x_w + 1               // east side x coord
y_n = floor(y)              // north side y coord
y_s = y_s + 1               // south side y coord
d_w = grid_x - x_w          // distance to west side
d_e = x_e - grid_x          // distance to east side
d_n = grid_y - y_n          // distance to north side
d_s = y_s - grid_y          // distance to south side
wn = X[:, :, y_n, x_w]      // north-west point value
en = X[:, :, y_n, x_e]      // north-east point value
ws = X[:, :, y_s, x_w]      // south-east point value
es = X[:, :, y_s, x_w]      // north-east point value

output = wn * d_e * d_s + en * d_w * d_s
+ ws * d_e * d_n + es * d_w * d_n
```

## 参数¶

• x (Variable)：输入张量，维度为 \([N, C, H, W]\) 的 4-D Tensor 或维度为 \([N, C, D, H, W]\) 的 5-D Tensor，N 为批尺寸，C 是通道数，D 是特征深度，H 是特征高度，W 是特征宽度，数据类型为 float32 或 float64。

• grid (Variable)：输入网格数据张量，维度为 \([N, H, W, 2]\) 的 4-D Tensor 或维度为 \([N, D, H, W, 3]\) 的 5-D Tensor，N 为批尺寸，C 是通道数，D 是特征深度， H 是特征高度，W 是特征宽度，数据类型为 float32 或 float64。

• name (str，可选) - 具体用法请参见 Name，一般无需设置，默认值为 None。

## 返回¶

Variable(Tensor)：输入 X 基于输入网格的双线性插值计算结果，维度为 \([N, C, H, W]\) 的 4-D Tensor 或维度为 \([N, C, D, H, W]\) 的 5-D Tensor

## 代码示例¶

```import paddle