携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情
在上一篇文章中,我们介绍了PyTorch的优点,案例,PyTorch和Tensorflow的对比。
今天我们主要介绍机器学习问题的构成元素,pytorch中的基本概念:张量,变量,nn.Module,Tensor与机器学习的关系。
-
1.1 机器学习问题的构成元素
- 对于y=f(x),f(x)=wx+b
- 样本: 抽取客观的规律,对应学习,对于函数来说,y就是标签,x就是属性
- 模型: 对于函数来说,模型就相当于f,通过挖掘属性之间的一些内在联系,得到样本的标签
- 训练: 学习这个过程,就是训练,求解w和b的过程,会有非常多的样本,参数没有那么多,但是在深度学习中参数比样本多,
- 测试: 模型性能的评估的过程
- 推理: 计算标签的过程
-
1.2 pytorch中的基本概念
-
1.2.1 Tensor
- 张量
- 描述任一维度的物体,可以是K x W x C的特征图,也可以是更高维度的,
- 张量是对于向量矩阵,标量这些量进行更加泛化的概念上的定义;
- 换句话说,标量、向量、矩阵都属于张量,标量是零维的张量,向量是一维的张量,矩阵是二维的张量
- 张量有更高的泛化能力
-
Variable(autograd)
- 变量在机器学习中式非常重要的概念,我们需要用变量去表达参数,对于想要去求解的模型,最开始参数的模型是未知的,这个时候就认为它是一个变量
- nn.Module
- 张量
-
1.3 Tensor与机器学习的关系
- 1.3.1 Tensor的基本概念
- (一) 样本:我们使用Tensor来对样本进行描述,
- 比如说:一条语音数据,我们一般采用向量来进行描述,这个向量就是一个一阶的Tensor,这个Tensor描述了在采样之后的当前的时刻声音的这样的特征,将它图形化之后可能就是一段波形
- 如果是一个图像,一般采用灰度图来描述,二阶的Tensor;W x H
- 如果是一个彩色图,一般采用W x H x C,C 一般等于 3,它就是一个三阶的Tensor
- (二) 模型:包含两类,有参数和无参数;
- 有参数的模型主要就是这么一个例子
- 我们通常将函数表示成y=f(x),假设它是一个具体的线性的函数,我们就把它表示成 的形式,
- X就是自变量,也就是所谓的样本;
- W和b就是参数,在未知的情况下就是变量,在表示变量的时候也是通过Tensor来表示的;
- 而Y就是标签,我们在表示标签的时候也是通过数字化来表示的,也是Tensor
- 这里可以发现,Tensor是非常重要的,它可以用来描述机器学习的样本以及模型。
- (一) 样本:我们使用Tensor来对样本进行描述,
- 1.3.2 Tensor基本操作:
- 如果对理解Tensor有困难的话,也可以借助numpy;numpy和Tensor和Pytorch也是可以相互转换的,只是说使用Tensor和Pytorch可以描述一些变量,并且通过优化学习,梯度求导对变量进行求解
- (一) 类型:
- Tensor这些数据类型,就是我们之前学到的数据类型,只是在前面加了torch.;可以说我们在理解Tensor的数据类型和之前学的编程语言的数据类型的理解方式是一样的,只是在表示的时候加了torch。
- (二) 创建
- 可以结合numpy理解
- 1.3.1 Tensor的基本概念
-
下一篇文章我们将进行Tensor创建编程实例,在之后的文章中将介绍Tensor基本操作:
- 属性
- 运算
- 操作
- numpy的相互转换