大数跨境
0
0

常见的可以使用as_strided或者strided_copy高效实现的tensor操作

常见的可以使用as_strided或者strided_copy高效实现的tensor操作 ai算法芯片与系统
2025-12-06
0
导读:常见的 tensor/ndarray 操作可通过 as_strided 或 strided_copy 高效实现,包括切片、转置、窗口提取和张量拼接等。这些操作通过调整跨步和偏移量,避免数据复制,提升内
NDArray高级内存操作:跨步视图与跨步复制机制

 

操作
用途
实现说明
Transpose
(转置)
交换数组的维度,
改变数据访问顺序
as_strided
:通过调整跨步
实现零拷贝转置
strided_copy:可实现但通常不必要
Reshape
(重塑)
改变数组形状而不
改变数据内容
as_strided
:通过调整形状
和跨步重新解释数据
strided_copy:可实现但通常不必要
Slice
(切片)
提取数组的子区域,
支持任意步长
as_strided
:通过调整偏移
和跨步创建视图
strided_copy:可用于创建切片副本
Concat
(连接)
将多个数组沿指定
维度拼接
strided_copy
:将多个数组分
次复制到目标位置
as_strided:无法直接实现
Split
(分割)
将数组沿指定维度
分割为多个子数组
as_strided
:可为每个子数组
创建独立视图
strided_copy:可用于创建独立副本
Roll
(滚动)
沿指定方向循环
移动数组元素
strided_copy
:分两次复制实
现元素循环移位
as_strided:无法直接实现
im2col
将图像块展开为列,
用于卷积计算
as_strided
:可创建重叠图像
块的零拷贝视图
strided_copy:可用于创建副本
col2im
将展开的列还原为
图像,用于反卷积
strided_copy
:将列数据复制
回图像布局
as_strided:无法直接实现
Broadcast_to
(广播)
将数组广播到
更大形状
as_strided
:通过设置跨步为
0实现维度复制
strided_copy:无法直接实现
Tile
(平铺)
沿各维度重复
数组多次
as_strided
:通过调整跨步
实现虚拟重复
strided_copy:可用于创建物理副本
Flip
(翻转)
沿指定维度翻转
数组元素顺序
as_strided
:通过负跨步实现
反转视图
strided_copy:可用于创建副本
Pad
(填充)
在数组边缘添加
填充值
strided_copy
:先用pad_value
初始化目标张量,再用一次
strided_copy复制原数据
as_strided:无法直接实现
Repeat
(重复)
沿指定维度重复
数组元素
as_strided
:通过调整跨步
实现元素重复
strided_copy:可用于创建副本
Expand_dims
(扩展维度)
在指定位置增加
大小为1的维度
as_strided
:通过添加跨步为
0的维度实现
strided_copy:无法直接实现
Squeeze
(压缩维度)
移除大小为1的
维度
as_strided
:通过移除跨步为
0的维度实现
strided_copy:无法直接实现
Moveaxis
(移动轴)
重新排列数组
维度的顺序
as_strided
:通过调整跨步
顺序实现零拷贝
strided_copy:可实现但通常不必要
Swapaxes
(交换轴)
交换数组的两个
维度
as_strided
:通过交换跨步
实现转置特例
strided_copy:可实现但通常不必要
Ravel
(展平)
将多维数组展平
为一维数组
as_strided
:创建连续或非连
续的一维视图
strided_copy:可用于创建连续副本

 


【声明】内容源于网络
0
0
ai算法芯片与系统
长期关注ai领域,算法,芯片,软件(系统,框架,编译器,算子库)等联合设计
内容 196
粉丝 0
ai算法芯片与系统 长期关注ai领域,算法,芯片,软件(系统,框架,编译器,算子库)等联合设计
总阅读68
粉丝0
内容196