昇思25天学习打卡营第3天|张量

学习目标:

1、张量的概念
2、张量的创建及属性
3、张量与numpy的转换
4、特殊张量CSRTensor、COOTensor`
5、学习小结

学习内容:

1、张量的概念
a. 张量(Tensor)是MindSpore网络运算中的基本数据结构。
b. 张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。
c. 张量是一种特殊的数据结构,与数组和矩阵非常相似。
2、张量的创建及属性
2.1 张量的创建

# 根据数据直接生成
import mindspore
from mindspore import Tensor

data = [1, 0, 1, 0]
x_data = Tensor(data, dtype=mindspore.float32)
print(x_data, x_data.shape, x_data.dtype)

# 从numpy数据生成
from mindspore import Tensor
import numpy as np

np_array = np.array(data)
x_np = Tensor(np_array)
print(x_np, x_np.shape, x_np.dtype)

# 使用init初始化器构造张量
from mindspore.common.initializer import One, Normal

# Initialize a tensor with ones
tensor1 = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=One())
# Initialize a tensor from normal distribution
tensor2 = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=Normal())

print("tensor1:\n", tensor1)
print("tensor2:\n", tensor2)

# 继承另一个张量的属性,生成新的张量
from mindspore import ops

x_ones = ops.ones_like(x_data)
print(f"Ones Tensor: \n {x_ones} \n")

x_zeros = ops.zeros_like(x_data)
print(f"Zeros Tensor: \n {x_zeros} \n")

2.2 张量的属性

import numpy as np
x = Tensor(np.array([[1, 2], [3,4]]), dtype=mindspore.int32)
print("x_shape:", x.shape)
print("x_ndim:", x.ndim)
print("x_itemsize:", x.itemsize)
print("x_size:", x.size)
print("x_nbytes:", x.nbytes)
print("x_strides:", x.strides)

3、张量与numpy的转换

from mindspore import Tensor
import numpy as np

# Tensor转numpy: asnumpy()
t = Tensor([1., 1., 1., 1., 1.])
print(f"t: {t}", type(t))
n = t.asnumpy()
print(f"n: {n}", type(n))

# numpy转Tensor: fromTensor()
n = np.ones(5)
t = Tensor.from_numpy(n)

print(f"n: {n}", type(n))
print(f"t: {t}", type(t))```
4、特殊张量CSRTensor、COOTensor
```\
from mindspore import Tensor, CSRTensor, COOTensor

# CSRTensor
indptr = Tensor([3, 0, 2])
indices = Tensor([0, 1])
values = Tensor([1, 2], dtype=mindspore.float32)
shape = (2, 4)

csr_tensor = CSRTensor(indptr, indices, values, shape)
print(csr_tensor)

# COOTensor
indices = Tensor([[0, 1], [1, 2]], mindspore.int32)
values = Tensor([1, 2], mindspore.float32)
shape = (3, 4)

coo_tensor = COOTensor(indices, values, shape)
print(coo_tensor)

5、学习小结
张量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值