浦口建设局网站,跳舞游戏做的广告视频网站,网站开发人员保密,wordpress个人展示网站《昇思 25 天学习打卡营第 3 天 | 张量 Tensor 》 活动地址#xff1a;https://xihe.mindspore.cn/events/mindspore-training-camp 签名#xff1a;Sam9029 感觉像是在 学习高数一样
张量 Tensor 张量是一种特殊的数据结构#xff0c;与数组和矩阵非常相似。 张量#xf…《昇思 25 天学习打卡营第 3 天 | 张量 Tensor 》 活动地址https://xihe.mindspore.cn/events/mindspore-training-camp 签名Sam9029 感觉像是在 学习高数一样
张量 Tensor 张量是一种特殊的数据结构与数组和矩阵非常相似。 张量Tensor是 MindSpore 网络运算中的基本数据结构应该类似于 字符串 或 整型 在 C 语言中一样吧基本数据结构
引入张量直接从 mindscope 模块中引入
import mindspore
from mindspore import Tensor, CSRTensor, COOTensor创建张量
张量的创建方式有多种构造张量时支持传入 Tensor、float、int、bool、tuple、list 和 numpy.ndarray 类型。
根据数据直接生成
data [1, 0, 1, 0]
x_data Tensor(data)
print(x_data, x_data.shape, x_data.dtype)## [1 0 1 0] (4,) Int64从 NumPy 数组生成使用 init 初始化器构造张量继承另一个张量的属性形成新的张量
张量的属性
- 不用多说属于张量的基本术语记住x Tensor(np.array([[1, 2], [3, 4]]), mindspore.int32)# 形状shapeTensor的shape是一个tuple。
print(x_shape:, x.shape)# 数据类型dtypeTensor的dtype是MindSpore的一个数据类型。
print(x_dtype:, x.dtype)# 单个元素大小itemsize Tensor中每一个元素占用字节数是一个整数。
print(x_itemsize:, x.itemsize)# 占用字节数量nbytes Tensor占用的总字节数是一个整数。
print(x_nbytes:, x.nbytes)# 维数ndim Tensor的秩也就是len(tensor.shape)是一个整数。
print(x_ndim:, x.ndim)# 元素个数size Tensor中所有元素的个数是一个整数。
print(x_size:, x.size)# 每一维步长strides Tensor每一维所需要的字节数是一个tuple。
print(x_strides:, x.strides)# x_shape: (2, 2)
# x_dtype: Int32
# x_itemsize: 4
# x_nbytes: 16
# x_ndim: 2
# x_size: 4
# x_strides: (8, 4)张量索引
- 略过张量运算
- 运算很好理解类比四则
- 张量运算 包括算术、线性代数、矩阵处理转置、标引、切片、采样等张量运算
- 可以看到张量包括了算术运行但是作为 mindscope 的基本数据结构也有更高级的运算概念如线性代数、矩阵处理以下是一下 算术运算的例子 x Tensor(np.array([1, 2, 3]), mindspore.float32)
y Tensor(np.array([4, 5, 6]), mindspore.float32)
output_add x y
output_sub x - y
output_mul x * y
output_div y / x
output_mod y % x # 取模%
output_floordiv y // x # 整除//
print(add:, output_add)
print(sub:, output_sub)
print(mul:, output_mul)
print(div:, output_div)
print(mod:, output_mod)
print(floordiv:, output_floordiv)add: [5. 7. 9.]
sub: [-3. -3. -3.]
mul: [ 4. 10. 18.]
div: [4. 2.5 2. ]
mod: [0. 1. 0.]
floordiv: [4. 2. 2.]Tensor 与 NumPy 转换
- Tensor转换为NumPy 使用 Tensor.asnumpy()~~~pyt 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 使用 Tensor.from_numpy(n)~~~pyn 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 两种稀疏数据格式。CSRTensorCOOTensor
稀疏张量有点难以理解暂时略过 目前初步了解一下张量Tensor吧深入感觉必须要沉下心来学现在时间不够主要是建立 AI 训练深度学习模型的认知先
但是没关系千里之行始于足下
我会继续一步一步的保持学习在 昇思社区 进行 AI 技术方面的探索和学习
希望能给同样对 AI 充满热情的你一些启发。记住技术的世界无限广阔让我们一起勇敢地迈出探索的脚步吧