深度学习入门笔记(一)

用哔哩哔哩上跟着李沐学AI尝试入门深度学习,这里是笔记区,用于记录以整理所学

工具篇

pytorch

类似于numpy中的数组ndarray,pytorch也有自己的数组张量(tensor)
二者相似但不相同

创建一个内容为0~11的张量:

深度学习入门笔记(一)_第1张图片

1.在一个tensor中可以使用的方法:

shape() 返回tensor形状
在这里插入图片描述

2.numel() number of element,返回元素个数(返回值为一个int类型)

在这里插入图片描述

3.reshape() 改变张量形状

深度学习入门笔记(一)_第2张图片

4.sum() 对tensor中所有元素求和
5.item() 当张量中仅有一个标量时,返回该标量的值

深度学习入门笔记(一)_第3张图片

6.tolist()

以列表返回tensor中的值
在这里插入图片描述

创建全是某个值的张量:

1.torch.zeros() 全是0的tensor

深度学习入门笔记(一)_第4张图片

2.torch.ones() 全是1的tensor
3.torch.full(size, value) 全是value的tensor

深度学习入门笔记(一)_第5张图片

直接创建张量:

1.torch.tensor([…]) 和新建一个数组类似,直接创建

深度学习入门笔记(一)_第6张图片

2.torch.normal(means, std, size) 创建符合正态分布N(means, std)的数组

means平均值
std 方差
深度学习入门笔记(一)_第7张图片

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

深度学习入门笔记(一)_第8张图片
两个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)

深度学习入门笔记(一)_第9张图片

pytorch的矩阵运算

torch.dot() 点乘(内积),只允许一维相乘
注意,这里不用转置,pytorch会自动进行转置

a = torch.arange(6)
b = torch.arange(6)
torch.dot(a,b)

深度学习入门笔记(一)_第10张图片

@符号,相当于矩阵乘法

a = torch.arange(6).reshape(2,3)
b = torch.arange(12).reshape(3,4)
a@b

深度学习入门笔记(一)_第11张图片

或者用torch.mm() 矩阵相乘(不广播)

a = torch.arange(6).reshape(2,3)
b = torch.arange(12).reshape(3,4)
torch.mm(a,b)

深度学习入门笔记(一)_第12张图片
还有一个torch.matmul(),有广播机制,不写了

torch.bmm() 矩阵批量相乘
似乎是用于高于二维的矩阵,比如两个三维矩阵之间相乘

其他部分

矩阵转置:

a = torch.arange(6).reshape(2,3)
a.T

深度学习入门笔记(一)_第13张图片

其他矩阵操作不写了(网上找来的不知道为什么用不了),机器学习用numpy的时候会用到矩阵的逆什么的,因为要推导公式,但是深度学习似乎不用这些,而pytorch用作深度学习比较多,大约是不怎么用这些的,机器学习库用sklearn

你可能感兴趣的:(深度学习,个人练习,python)