Tensor
Overview
Tensor is a basic data structure in the MindSpore network computing. For details about data types in tensors, see dtype.
Tensors of different dimensions represent different data. For example, a 0-dimensional tensor represents a scalar, a 1-dimensional tensor represents a vector, a 2-dimensional tensor represents a matrix, and a 3-dimensional tensor may represent the three channels of RGB images.
All examples in this document can be run in the PyNative mode.
Tensor Structure
During tensor creation, the Tensor
, float
, int
, bool
, tuple
, list
, and NumPy.array
types can be transferred, while tuple
and list
can only store float
, int
, and bool
data.
dtype
can be specified when Tensor
is initialized. When the dtype
is not specified, if the initial value is int
, float
or bool
, then a 0-dimensional Tensor
with data types mindspore.int32
, mindspore.float32
or mindspore.bool_
will be generated respectively. If the initial values are tuple
and list
, the generated 1-dimensional Tensor
data type corresponds to the type stored in tuple
and list
. If it contains multiple different types of data, follow the below priority: bool
< int
< float
, to select the mindspore data type corresponding to the highest relative priority type. If the initial value is Tensor
, the consistent data type Tensor
is generated. If the initial value is NumPy.array
, the corresponding data type Tensor
is generated.
A code example is as follows:
import numpy as np
from mindspore import Tensor
from mindspore import dtype as mstype
x = Tensor(np.array([[1, 2], [3, 4]]), mstype.int32)
y = Tensor(1.0, mstype.int32)
z = Tensor(2, mstype.int32)
m = Tensor(True, mstype.bool_)
n = Tensor((1, 2, 3), mstype.int16)
p = Tensor([4.0, 5.0, 6.0], mstype.float64)
q = Tensor(p, mstype.float64)
print(x, "\n\n", y, "\n\n", z, "\n\n", m, "\n\n", n, "\n\n", p, "\n\n", q)
The following information is displayed:
[[1 2]
[3 4]]
1
2
True
[1 2 3]
[4. 5. 6.]
[4. 5. 6.]
Tensor Attributes and Methods
Attributes
Tensor attributes include shape and data type (dtype).
shape: a tuple
dtype: a data type of MindSpore
A code example is as follows:
import numpy as np
from mindspore import Tensor
from mindspore import dtype as mstype
x = Tensor(np.array([[1, 2], [3, 4]]), mstype.int32)
x_shape = x.shape
x_dtype = x.dtype
print(x_shape, x_dtype)
The following information is displayed:
(2, 2) Int32
Methods
Tensor methods include all
, any
, and asnumpy
. Currently, the all
and any
methods support only Ascend, and the data type of Tensor
is required to be mindspore.bool_
.
.
all(axis, keep_dims)
: performs theand
operation on a specified dimension to reduce the dimension.axis
indicates the reduced dimension, andkeep_dims
indicates whether to retain the reduced dimension.any(axis, keep_dims)
: performs theor
operation on a specified dimension to reduce the dimension. The parameter meaning is the same as that ofall
.asnumpy()
: convertsTensor
to an array of NumPy.
A code example is as follows:
import numpy as np
from mindspore import Tensor
from mindspore import dtype as mstype
x = Tensor(np.array([[True, True], [False, False]]), mstype.bool_)
x_all = x.all()
x_any = x.any()
x_array = x.asnumpy()
print(x_all, "\n\n", x_any, "\n\n", x_array)
The following information is displayed:
False
True
[[ True True]
[False False]]