F.interpolate函数

打印 上一主题 下一主题

主题 947|帖子 947|积分 2841

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
F.interpolate 是 PyTorch 中用于对张量(通常是图像数据)举行插值操纵的函数,常用于调解张量的大小,比方改变图像的分辨率。它支持多种插值方法,包罗近来邻插值、双线性插值和三次插值等。
语法

  1. torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None)
复制代码
参数


  • input:

    • 输入的张量,外形通常为 (N, C, H, W) 或 (N, C, D, H, W)(批次、通道数、高度、宽度 或深度、高度、宽度)。

  • size:

    • 调解后张量的目的大小,可以是整数元组,比方 (height, width)。
    • 优先级高于 scale_factor。

  • scale_factor:

    • 用于调解大小的比例因子,可以是浮点数或元组(对于高度和宽度分别指定比例)。
    • 如果指定了 size,此参数会被忽略。

  • mode:

    • 指定插值方法,常用选项:

      • 'nearest':近来邻插值。
      • 'linear':线性插值(仅适用于 3D 输入)。
      • 'bilinear':双线性插值(常用于 2D 图像)。
      • 'bicubic':双三次插值(适用于 2D 图像)。
      • 'trilinear':三线性插值(适用于 3D 输入)。
      • 'area':地域插值,用于下采样。


  • align_corners:

    • 仅在 mode 为 'linear', 'bilinear', 'bicubic' 或 'trilinear' 时使用。
    • 如果为 True,则输入和输出的角像素对齐。

返回值

调解大小后的张量。

示例代码

1. 将图像从 640x640 调解为 832x832

  1. import torch
  2. import torch.nn.functional as F
  3. # 创建一个随机图像张量,形状为 (batch_size=1, channels=3, height=640, width=640)
  4. img = torch.randn(1, 3, 640, 640)
  5. # 使用 F.interpolate 调整分辨率为 832x832
  6. resized_img = F.interpolate(img, size=(832, 832), mode='bilinear', align_corners=False)
  7. print("Original shape:", img.shape)
  8. print("Resized shape:", resized_img.shape)
复制代码
2. 使用比例调解图像大小

  1. # 使用 scale_factor=1.3 对图像尺寸放大 1.3 倍
  2. scaled_img = F.interpolate(img, scale_factor=1.3, mode='bilinear', align_corners=False)
  3. print("Scaled shape:", scaled_img.shape)
复制代码
3. 下采样为一半大小

  1. # 使用 scale_factor=0.5 对图像尺寸缩小 50%
  2. downsampled_img = F.interpolate(img, scale_factor=0.5, mode='area')
  3. print("Downsampled shape:", downsampled_img.shape)
复制代码

注意事项


  • align_corners 的影响
    当 align_corners=True 时,插值会在输入和输出张量的角像素之间举行对齐;否则,盘算比例时不对齐角像素。通常推荐 align_corners=False,避免形变或偏移。
  • 选择插值方法

    • 双线性插值(bilinear)和双三次插值(bicubic)通常适用于图像重采样,天生更平滑的结果。
    • 近来邻插值(nearest)速度快,但结果不敷平滑。

  • 处理多通道输入
    F.interpolate 可直接处理多通道(如 RGB、IR 数据)的张量,不需要额外操纵。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表