Day24_【深度学习(3)—PyTorch使用(2)—张量的数值计算】
·
一、张量基本运算
- 加减乘除取负号: add、sub、mul、div、neg
- add_、sub_、mul_、div_、neg_(其中带下划线的版本会修改原数据)
import numpy as np
import torch
def tensor_caculate():
torch.manual_seed(100)
# randint(low,high,size) 取不到high,size:形状
data=torch.randint(0,10,(3,2))
print(data)
print(data.add(1))
# 带下划线的会修改源数据 =pd的replace=True
print(data.add_(1))
if __name__ == '__main__':
tensor_caculate()
二、张量点乘运算
点乘指(Hadamard)的是两个同维矩阵对应位置的元素相乘,使用.mul() 和运算符 * 实现。

def point_mul():
torch.manual_seed(2)
data = torch.randint(0, 10, (3, 2))
matrix_x=torch.tensor([[1,2],[4,5],[7,8]])
print(matrix_x*data)
print(matrix_x.mul(data))
if __name__ == '__main__':
point_mul()
三、张量矩阵乘法运算
矩阵乘法运算要求第一个矩阵 shape: (n, m),第二个矩阵 shape: (m, p), 两个矩阵点积运算 shape 为: (n, p)。
- 运算符 @
- torch.matmul
def matrix_mul():
# 点积运算
data1 = torch.tensor([[1, 2], [3, 4], [5, 6]])
data2 = torch.tensor([[5, 6], [7, 8]])
# 方式一:
data3 = data1 @ data2
print("data3-->", data3)
# 方式二:
data4 = torch.matmul(data1, data2)
print("data4-->", data4)
if __name__ == '__main__':
matrix_mul()
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)