Tensor 类及核心构造函数定义在 InfiniCore/python/infinicore/tensor.py,负责在 Python 端封装底层 _infinicore.Tensor 指针并提供常用操作。
shape(tuple[int, ...])/ndim/size(dim):获取张量维度信息。stride(dim=None):返回步长数组或指定维度的步长。dtype:对应的标量类型(参见dtype文档)。device:张量所在设备(参见device文档)。numel():元素总数。is_contiguous():判断是否连续存储。
copy_(src):将src的数据拷贝到当前张量。to(*args, **kwargs):执行跨设备/数据类型转换,返回新Tensor。as_strided(size, stride):创建共享存储的视图。contiguous():返回连续副本。permute(dims):重新排列维度。view(shape):改变张量形状(需满足可视条件)。debug(filename=None):打印张量信息或将原始数据写入文件。
全部为 Tensor 类的顶层函数,默认要求显式传入 dtype 与 device:
from infinicore import (
empty, strided_empty, zeros, ones,
from_blob, strided_from_blob, empty_like,
)empty(shape, *, dtype, device, pin_memory=False):按给定形状分配未初始化存储。strided_empty(shape, strides, *, dtype, device, pin_memory=False):按指定步长分配存储。zeros/ones:与empty类似,但在 Python 层暂时未初始化填充值。from_blob(data_ptr, shape, *, dtype, device):将外部内存包装为Tensor,不接管内存所有权。strided_from_blob:同上但可显式指定步长。empty_like(input, *, dtype=None, device=None):按照input的形状/步长创建新张量,可覆盖dtype或device。
import infinicore as ic
device = ic.device("cuda:0")
a = ic.empty((4, 8), dtype=ic.float16, device=device)
b = ic.ones((4, 8), dtype=ic.float16, device=device)
a.copy_(b)
c = a.permute([1, 0]).contiguous()