You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中对Tensor的第二维度按每3行采样?

Python中Tensor按固定间隔采样的实现方法

核心实现方式

针对形状为[color, frames, height, width]的Tensor,要在**第二维度(帧维度)**实现每3帧采样1帧的需求,直接利用Tensor的索引切片功能即可,核心语法为:tensor[:, ::3, :, :]。其中::3表示从维度起始位置开始,每隔3个元素选取一个。

示例1:高维视频Tensor采样

假设原Tensor尺寸为(3, 300, 10, 10),对应3通道、300帧、10x10分辨率的视频数据:

import torch

# 创建示例Tensor
original_tensor = torch.randn(3, 300, 10, 10)
# 执行每3帧采样1帧的操作
sampled_tensor = original_tensor[:, ::3, :, :]
# 查看采样后尺寸
print(sampled_tensor.size())  # 输出: torch.Size([3, 100, 10, 10])

示例2:低维Tensor验证

针对你给出的低维测试Tensor:

# 创建测试Tensor
original_tensor = torch.tensor([[1,2,3,4,5,6,7,8,9,10],
                               [1,2,3,4,5,6,7,8,9,10],
                               [1,2,3,4,5,6,7,8,9,10]])
# 在第二维度按每3个元素采样
sampled_tensor = original_tensor[:, ::3]
print(sampled_tensor)
# 输出结果:
# tensor([[ 1,  4,  7, 10],
#         [ 1,  4,  7, 10],
#         [ 1,  4,  7, 10]])

补充说明

  • 切片语法start:end:step中,省略start默认从维度索引0开始,省略end默认取到维度最后一个元素,step=3就是设置采样间隔为3。
  • 该操作是PyTorch原生支持的高效操作,无需额外依赖,不会产生冗余内存开销。

内容的提问来源于stack exchange,提问作者Alan Chuang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:27:23