深度学习入门笔记(一)

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

工具篇

pytorch

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

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

深度学习入门笔记(一)
; 1.在一个tensor中可以使用的方法:

shape() 返回tensor形状

深度学习入门笔记(一)
2.numel() number of element,返回元素个数(返回值为一个int类型)

深度学习入门笔记(一)
; 3.reshape() 改变张量形状

深度学习入门笔记(一)
4.sum() 对tensor中所有元素求和
5.item() 当张量中仅有一个标量时,返回该标量的值

深度学习入门笔记(一)
; 6.tolist()

以列表返回tensor中的值

深度学习入门笔记(一)

创建全是某个值的张量:

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

深度学习入门笔记(一)
; 2.torch.ones() 全是1的tensor
3.torch.full(size, value) 全是value的tensor

深度学习入门笔记(一)

; 直接创建张量:

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

深度学习入门笔记(一)
; 2.torch.normal(means, std, size) 创建符合正态分布N(means, std)的数组

means平均值
std 方差

深度学习入门笔记(一)

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)

深度学习入门笔记(一)

pytorch的矩阵运算

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.matmul(),有广播机制,不写了

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

其他部分

矩阵转置:

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

深度学习入门笔记(一)

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

Original: https://blog.csdn.net/weixin_38878828/article/details/123940481
Author: firebeans
Title: 深度学习入门笔记(一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/762475/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球