用哔哩哔哩上跟着李沐学AI尝试入门深度学习,这里是笔记区,用于记录以整理所学
类似于numpy中的数组ndarray,pytorch也有自己的数组张量(tensor)
二者相似但不相同
tensor间进行加减乘除乘方运算都是元素和元素之间进行计算,而不是直接进行向量计算
x = torch.tensor([1.0,2,4,8])
y = torch.tensor([2,2,2,2])
x+y, x-y, x*y, x/y, x**y
两个tensor的合并用torch.cat((X, Y), dim)
dim=0时在行上合并,dim=1时在列上合并
X = torch.arange(12,dtype=torch.float32).reshape((3,4))
Y = torch.tensor([[2.0, 1, 4, 3], [1,2,3,4], [4,3,2,1]])
torch.cat((X, Y), dim=0), torch.cat((X, Y), dim=1)
torch.dot() 点乘(内积),只允许一维相乘
注意,这里不用转置,pytorch会自动进行转置
a = torch.arange(6)
b = torch.arange(6)
torch.dot(a,b)
@符号,相当于矩阵乘法
a = torch.arange(6).reshape(2,3)
b = torch.arange(12).reshape(3,4)
a@b
或者用torch.mm() 矩阵相乘(不广播)
a = torch.arange(6).reshape(2,3)
b = torch.arange(12).reshape(3,4)
torch.mm(a,b)
torch.bmm() 矩阵批量相乘
似乎是用于高于二维的矩阵,比如两个三维矩阵之间相乘
矩阵转置:
a = torch.arange(6).reshape(2,3)
a.T
其他矩阵操作不写了(网上找来的不知道为什么用不了),机器学习用numpy的时候会用到矩阵的逆什么的,因为要推导公式,但是深度学习似乎不用这些,而pytorch用作深度学习比较多,大约是不怎么用这些的,机器学习库用sklearn