广州白云学校网站建设,fifa17做任务网站,企业网站建设重要性,深圳防疫措施优化调整张量Tensor 创建张量张量的属性张量索引张量运算 稀疏张量 总结 简单讲讲张量#xff0c;数学和物理学界以一种方式定义张量#xff0c;机器学习上则是以另一种方式定义张量#xff0c;这里的张量也与神经网络联系紧密#xff0c;神经网络需要进行大量的数学计算#xff0… 张量Tensor 创建张量张量的属性张量索引张量运算 稀疏张量 总结 简单讲讲张量数学和物理学界以一种方式定义张量机器学习上则是以另一种方式定义张量这里的张量也与神经网络联系紧密神经网络需要进行大量的数学计算也是张量被设计出来的目的。 张量是存储输入数据的方式还存储构成神经网络的权重和偏置。
当输入是单一图像时大多数编程语言会称之为矩阵这里称为二维张量。 当输入是视频时大多数编程语言会称之为多维矩阵或多维数组这里称为n维张量。
听起来有点无聊大家会认为不过是换个名字张量到底有什么用呢 张量是设计用来利用硬件加速的优势 也能通过自动微分处理反向传播
张量也是MindSpore网络运算中的基本数据结构
# 导包
import numpy as np
import mindspore
from mindspore import ops
from mindspore import Tensor, CSRTensor, COOTensor创建张量
根据数据直接生成
data [1, 0, 1, 0]
x_data Tensor(data)
print(x_data, x_data.shape, x_data.dtype)从NumPy数组生成
np_array np.array(data)
x_np Tensor(np_array)
print(x_np, x_np.shape, x_np.dtype)上面两种方式输出结果都是[1 0 1 0] (4,) Int64
使用init初始化器构造张量
from mindspore.common.initializer import One, Normal# Initialize a tensor with ones
tensor1 mindspore.Tensor(shape(2, 2), dtypemindspore.float32, initOne())
# Initialize a tensor from normal distribution
tensor2 mindspore.Tensor(shape(2, 2), dtypemindspore.float32, initNormal())print(tensor1:\n, tensor1)
print(tensor2:\n, tensor2)输出结果 tensor1: [[1. 1.] [1. 1.]] tensor2: [[-0.00063482 -0.00916224] [ 0.01324238 -0.0171206 ]]
One是生成一个值全为1的常量数组用于初始化Tensor。 Normal是生成一个服从正态分布的随机数组用于初始化Tensor。
继承另一个张量的属性形成新的张量
from mindspore import opsx_ones ops.ones_like(x_data)
print(fOnes Tensor: \n {x_ones} \n)x_zeros ops.zeros_like(x_data)
print(fZeros Tensor: \n {x_zeros} \n)Ones Tensor: [1 1 1 1]
Zeros Tensor: [0 0 0 0]
张量的属性
张量的属性包括形状、数据类型、转置张量、单个元素大小、占用字节数量、维数、元素个数和每一维步长。
张量索引
Tensor索引与Numpy索引类似索引从0开始编制负索引表示按倒序编制冒号:和 …用于对数据进行切片。
张量运算
张量之间有很多运算包括算术、线性代数、矩阵处理转置、标引、切片、采样等张量运算和NumPy的使用方式类似.
Tensor能与NumPy相互转换
Tensor转换为NumPy
t Tensor([1., 1., 1., 1., 1.])
print(ft: {t}, type(t))
n t.asnumpy()
print(fn: {n}, type(n))t: [1. 1. 1. 1. 1.] class ‘mindspore.common.tensor.Tensor’ n: [1. 1. 1. 1. 1.] class ‘numpy.ndarray’
NumPy转换为Tensor
n np.ones(5)
t Tensor.from_numpy(n)
np.add(n, 1, outn)
print(fn: {n}, type(n))
print(ft: {t}, type(t))n: [2. 2. 2. 2. 2.] class ‘numpy.ndarray’ t: [2. 2. 2. 2. 2.] class ‘mindspore.common.tensor.Tensor’
稀疏张量
稀疏张量是一种特殊张量其中绝大部分元素的值为零。普通张量表征这些数据会引入大量不必要的计算、存储和通讯开销所以引入稀疏矩阵存储。
MindSpore现在已经支持最常用的CSR和COO两种稀疏数据格式。
总结
感觉张量就是另类的矩阵会使用会看会计算就行