MindSpore笔记:张量

张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 n 维空间内,有  nr 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。r 称为该张量的秩或阶(与矩阵的秩和阶均无关系)。

张量是一种特殊的数据结构,与数组和矩阵非常相似。张量(Tensor)是MindSpore网络运算中的基本数据结构,本教程主要介绍张量和稀疏张量的属性及用法。

把它理解为数组也可以。

定义Tensor

首先,先引入:

import mindspore
import numpy as np
from mindspore import Tensor

从列表转换

请看:

list = [1, 2, 3, 4]

tensor_from_list = Tensor(list)

print(tensor_from_list)
[1 2 3 4]

十分简单,可以直接转换。

从numpy转换

先定义一个numpy:

array = np.array(list)

然后一样的步骤:

tensor_from_array = Tensor(array)

print(tensor_from_array)
[1 2 3 4]

使用构造器构建

直接用Tensor来实现:

tensor_from_init = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=这里填什么?)

当使用 init 初始化器对张量进行初始化时,支持传入的参数有 initshapedtype

shape: Tensor形状。

dtype: Tensor数据类型。

还有:

init: 初始化方法。

这个初始化方法可填 initializer 的子类。

那么:

from mindspore.common.initializer import One, Normal

tensor_from_init = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=One())

这时就全部初始化为1了。看:

print(tensor_from_init)
 [[1. 1.]
 [1. 1.]]

继承另一个张量的属性

如果有另一个Tensor——tensor_dad,那么tensor_son可以继承他的父亲。见:

from mindspore import ops

tensor_dad = Tensor([1, 2, 3, 4])
tensor_son = ops.ones_like(tensor_dad)

print(tensor_son)
[1 1 1 1]

张量的属性

张量的属性包括形状、数据类型、转置张量、单个元素大小、占用字节数量、维数、元素个数和每一维步长。

形状(shape):Tensor的shape,是一个tuple。

数据类型(dtype):Tensor的dtype,是MindSpore的一个数据类型。

单个元素大小(itemsize): Tensor中每一个元素占用字节数,是一个整数。

占用字节数量(nbytes): Tensor占用的总字节数,是一个整数。

维数(ndim): Tensor的秩,也就是len(tensor.shape),是一个整数。

元素个数(size): Tensor中所有元素的个数,是一个整数。

每一维步长(strides): Tensor每一维所需要的字节数,是一个tuple。

tensor = Tensor(np.array([[1, 2], [3, 4]]), mindspore.int32)

print("tensor_shape:", tensor.shape)
print("tensor_dtype:", tensor.dtype)
print("tensor_itemsize:", tensor.itemsize)
print("tensor_nbytes:", tensor.nbytes)
print("tensor_ndim:", tensor.ndim)
print("tensor_size:", tensor.size)
print("tensor_strides:", tensor.strides)
tensor_shape: (2, 2)
tensor_dtype: Int32
tensor_itemsize: 4
tensor_nbytes: 16
tensor_ndim: 2
tensor_size: 4
tensor_strides: (8, 4)

你可能感兴趣的:(python,华为)