当前位置: 首页 > news >正文

利用F.interpolate()函数进行插值操作

函数简介

功能

利用插值方法,对输入的张量数组进行上\下采样操作,换句话说就是科学合理地改变数组的尺寸大小,尽量保持数据完整。

torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None)

参数: 

  • input (Tensor) 需要进行采样处理的数组。数据类型必须是float。维数只能是3,4或5,分别对应时间、空间或体积采样。输入数组的维度形式为:批量(batch_size)x通道(channel)x[可选深度]x[可选高度]x宽度 (前两个维度具有特殊的含义,不进行采样处理)
  • size (int或序列):输出空间的大小
  • scale_factor (float或序列):空间大小的乘数
  • mode (str):用于采样的算法,默认 'nearest'。

具体参考:

  • torch.nn.functional.interpolate — PyTorch 2.4 documentation
  • F.interpolate——数组采样操作-CSDN博客

示例

实际应用中,有时候会使用wav2vec或者hubert等预训练模型提取wav文件的中间表征,得到预测的id序列,predicted_ids,然后需要将该id序列对齐到另一个指定长度,进行监督。这时候就需要用到F.interpolate()函数进行插值操作,具体如下:

import torch
from torch.nn import functional as F# [B, T]
predicted_ids = torch.tensor([[0, 1, 3, 4, 2],[0, 2, 5, 0, 0]])
target_size = 8
phone_ids = F.interpolate(predicted_ids.unsqueeze(0).float(), target_size, mode='nearest').long().squeeze(0)
print(phone_ids)

 


http://www.mrgr.cn/news/35252.html

相关文章:

  • 一些做题中总结的零散的python函数的简单运用
  • 【工具类】——图片缩放
  • 828华为云征文|Flexus云服务器X实例:在Docker环境下搭建java开发环境
  • 拦截器filter
  • 如何使用ssm实现基于VUE.js的在线教育系统+vue
  • for循环的应用
  • 0基础学前端 day2
  • git基础 -- 查找文件内容
  • MyBatis的一二级缓存
  • 云管理平台实践指南
  • ②大缓存ModbusRTU485数据集中采集器寄存器线圈重映射从站并发采集Modbus 串口RS485 转 RS485
  • 2024年蓝牙网关市场热门产品选购宝典
  • 洛谷P4551 最长异或路径(字典树,异或)
  • Node.JS有什么用?给谁用?怎么学?通俗易懂,超级详细!
  • vue脚手架Vue CLI 2.9.6创建工程,并引入elementUI的方法
  • C++STL--------string
  • Linux usb主机控制器HC阅读
  • scrapy spider框架download下来就可以用
  • DBeaver中如何导入excel中的大量数据
  • JS 特殊运算符有哪些?