megengine.Tensor¶
- class Tensor(data, dtype=None, device=None, is_const=False, no_cache=False, name=None, format='default')[源代码]¶
一个张量对象表示固定大小元素的多维同构数组。
张量(Tensor)是 MegEngine 中所主要使用的数据结构。数据类型(dype)负责描述其中每个元素的表示形式,如
float32,int8等等,参考 Tensor 数据类型 了解更多细节。Tensor 在设计上与 NumPy 中的numpy.ndarray很相似但又不尽一致。例如,在 MegEngine 中可以使用 GPU 设备来存储 Tensor 和执行计算,而 NumPy 却不行。另外在 MegEngine 中没有 view (视图)的概念,因此在索引元素时其行为可能与 NumPy 不同。所有的 Tensor 操作和 Tensor 间的运算都可以在functional中被找到,牢记这些行为都是 非原地的 ,它们的结果往往是返回一个新 Tensor, 而旧 Tensor 没有任何变化。更多细节请参考 深入理解 Tensor 数据结构 专题。
- 参数
data (Tensor,
ndarray,listor Python number) – 用来构造 Tensor 的数据。Tensor 可以从以下数据构造: Pythonlist/tuple或序列;NumPy 的ndarray数据结构; MegEngine 内置的方法… 等等。参考 如何创建一个 Tensor 了解更多细节。dtype (
dtype) – 返回 Tensor 的数据类型。如未指定,则将从给定的data进行推断。device (
device) – 张量的所在设备。如果没有特别指定则为get_default_device返回值。is_const (
bool) – 是否要将它变成追溯(Tracing)模式下的ImutableTensor, 参考jit.trace接口的说明。no_cache (
bool) – 是否为了内存共享缓存张量。format (
str) – 用于表明当前 Tensor 所使用的内存布局格式。它不会影响到实际的内存排布或步长设定,但有可能影响到一些与索引和维度计算有关的算子。当前仅支持设置为 “default”, “nchw” 或 “nhwc”.
注解
一些方法形如
reshape/flatten/transpose/min/max/mean/sum/prod被实现在了Tensor类中,这是出于方便和一些历史原因。但其它的存在于functional模块中的方法则不会被添加到类方法中,这会导致代码难以维护,且太多的候选项将影响到代码补全。属性
transpose的别名。返回一个字符串,表示当前
Tensor所存储在的设备。设备映射的回调函数,参见
load。返回一个
numpy.dtype对象,表示当前Tensor的数据类型。返回一个表示
Tensor的 memory format 的字符串。此 tensor 的梯度见
autodiff。返回一个表示
Tensor的名字的字符串。返回自身
Tensor的维数。返回一个布尔值,表示
Tensor是否需要梯度。返回当前
Tensor的大小。方法
astype(dtype)detach()返回一个与当前图解绑后的新
Tensor.flatten([start_axis, end_axis])参考
flatten.item(*args)以标准 Python
numbers.Number类型返回当前Tensor元素的值。max([axis, keepdims])参考
max.mean([axis, keepdims])参考
mean.min([axis, keepdims])参考
min.numpy()返回一个将当前
Tensor转换为numpy.ndarray后的结果。prod([axis, keepdims])参考
prod.1.0 版后已移除.
reshape(*args)参考
reshape.set_value(value)1.0 版后已移除.
sum([axis, keepdims])参考
sum.to(device, *[, _borrow])将当前
Tensor拷贝到指定设备。tolist()返回将当前张量转换成(嵌套)列表后的结果。
transpose(*args)参考
transpose.