基于pytorch张量知识总结

1.张量的定义与属性

张量(Tensor)是一个数学概念,用于描述多维数据结构或多维数组。它是一种可以表示标量、向量、矩阵以及更高维数据的数学对象。

#0维张量:标量scaler
scaler = torch.tensor(1)
print(f'{scaler.ndim}维张量:{scaler}')
#1维张量:向量vector
vector = torch.tensor([1,2,3])
print(f'{vector.ndim}维张量:{vector}')
#多维张量
tensor=torch.tensor([[1,2,3],[4,5,6]])
print(f'{tensor.ndim}维张量:{tensor}')

2.张量的创建

线性张量和随机张量

def test01():
    data=torch.tensor(1)
    print(data)
    data=torch.tensor(np.random.randn(3,4))
    print(data)
    data=torch.tensor([1.,2.,3.])
    print(data)

全0全1张量
data1 = torch.zeros(2, 3)
data2 = torch.zeros_like(data1)

# 全1张量
data3 = torch.ones(2, 3)
data4 = torch.ones_like(data3)

# 全指定值张量
data5 = torch.full([2, 3], 10)
data6 = torch.full_like(data5, 20)

3.张量的基本操作

# 张量加法

result_add = matrix + matrix

print("加法结果:\n", result_add)

# 张量乘法(逐元素乘法)

result_mul = matrix * matrix

print("逐元素乘法结果:\n", result_mul)

# 张量乘法(矩阵乘法)

result_matmul = torch.matmul(matrix, torch.tensor([[1], [1], [1]]))

print("矩阵乘法结果:\n", result_matmul)

# 张量转置

result_transpose = matrix.T

print("转置结果:\n", result_transpose)

# 张量的均值

mean_val = matrix.mean()

print("均值:", mean_val)

# 张量的最大值

max_val = matrix.max()

print("最大值:", max_val)

# 张量的最小值

min_val = matrix.min()

print("最小值:", min_val)

4.张量的求导

# 创建一个需要求导的张量

x = torch.tensor([2.0, 3.0], requires_grad=True)

# 进行一些操作

y = x**2 + 2*x + 1

# 计算梯度

y.sum().backward()

print("x 的梯度:", x.grad)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值