【pytorch】interpolate的简单使用

interpolate是用于做插值处理的,常见用途是用于上采样(upsampling);当然也是可以做下采样的(downsampling)

官方的介绍如下
在这里插入图片描述

参数列表如下
在这里插入图片描述

简单使用

下面做简单使用的介绍

sizescale_factor两个参数只需要提供一个即可;

他们的区别是,size指定了插值后的shape;而scale_factor只是提供一个系数去做倍增或者倍减;

mode主要是指插值的算法,默认是"nearest", 它类似repeat操作,即复制最近的一个元素来实现插值,但是它必须适用于输入的张量是4维的;
另外一个常见的值是“linear”,它是做线性插值

下面是简单使用的例子

样例1

scale_factor是指定最后两维的扩展系数,如下面scale_factor=(2,2),是做输入张量的shape的最后两维,分别乘以2;

import torch
from torch.nn import functional as F

x=torch.randint(1,10, (1, 3,2,2)).type(torch.float)
print(x)
x = F.interpolate(x, scale_factor=(2,2), mode='nearest')
print(x, x.shape)

在这里插入图片描述

样例2

如果scale_factor只输入一维是否可以? 可以的。
如下样例scale_factor=(2), 它其实效果就是scale_factor=(2,2)

import torch
from torch.nn import functional as F

x=torch.randint(1,10, (1, 3,2,2)).type(torch.float)
print(x)
x = F.interpolate(x, scale_factor=(2), mode='nearest') 
print(x, x.shape)

在这里插入图片描述

样例3

不使用scale_factor,而使用size;
下面的例子里,通过size=(4,4),指定了输入张量的最后二维目标大小;实际上这个例子里,它的作用同上面的例子。

import torch
from torch.nn import functional as F

x=torch.randint(1,10, (1, 3,2,2)).type(torch.float)
print(x)

x = F.interpolate(x,size=(4,4), mode='nearest') print(x, x.shape)

在这里插入图片描述

样例4

使用mode=‘linear’; 注意输入张量需要为3维,然后插值仅作用于最后一维

import torch
from torch.nn import functional as F

x=torch.randint(1,10, (3,2,2)).type(torch.float)
print(x)
x = F.interpolate(x,size=4, mode='linear') #, scale_factor=(2)
print(x, x.shape)

在这里插入图片描述

样例5

使用scale_factor,效果同上

import torch
from torch.nn import functional as F

x=torch.randint(1,10, (3,2,2)).type(torch.float)
print(x)
x = F.interpolate(x,scale_factor=2, mode='linear') 
print(x, x.shape)

在这里插入图片描述

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值