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
,list
or 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
所存储在的设备。callback for device mapping, see
load
.返回一个
numpy.dtype
对象,表示当前Tensor
的数据类型。Returns a string represents the memory format of a
Tensor
.gradient of this tensor, see
autodiff
.Returns a string represents the name of a
Tensor
.返回自身
Tensor
的维数。Returns a bool indicates whether the
Tensor
requires gradient.返回当前
Tensor
的大小。方法
astype
(dtype)detach
()返回一个与当前图解绑后的新
Tensor
.flatten
()参考
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
.