前言:
最近博主搭建网络需要用到一些直接对于GPU上的tensor的上采样和下采样操作,如果使用opencv那么就需要先将数据从GPU上面copy到CPU,操作完后在转移到GPU。这样不能利用GPU的加速技术,并且还会导致程序阻塞,pytorch中带有函数interpolate可以实现这个功能,下面详细讲解这个函数的使用。
1.TORCH.NN.FUNCTIONAL.INTERPOLATE
torch.nn.functional.
interpolate
(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None, antialias=False)[SOURCE]
**输入尺寸以以下形式解释: 小批量 x 通道 x [可选深度] x [可选高度] x 宽度。
**向下/向上对给定size
或 给定的输入进行采样scale_factor
**用于插值的算法由 mode
确定,目前支持时间、空间和体积采样,即预期输入的形状是 3-D、4-D 或 5-D。
***可用于调整大小的模式有:(中英文对照)
nearest, linear (3D-only), bilinear, bicubic (4D-only), trilinear (5D-only), area, nearest-exact