1.1基本概念
学习目标:
1.【了解】AI发展史
2.【了解】AI、机器学习、深度学习的关系
1.2拓展
1 使用场景
-
图像识别和处理
-
自然语言处理(NLP)
-
音频处理
-
视频分析
-
游戏和仿真
-
自动驾驶汽车
-
推荐系统
-
金融领域
-
医疗领域
2.1Pytorch
1 什么是Pytorch
-
PyTorch是一个开源机器学习和深度学习框架。PyTorch允许您使用Python代码操作和处理数据并编写深度学习算法,能够在强大的GPU加速基础上实现张量和动态神经网络。
-
PyTorch是一个基于Python的科学计算包,使用Tensor作为其核心数据结构,类似于Numpy数组。不同的是,PyTorch可以用GPU来处理数据,提供许多深度学习的算法。
-
PyTorch提供了完整的使用文档、循序渐进的用户指南,作者亲自维护PyTorch论坛,方便用户交流和解决问题。
-
Meta(前Facebook)人工智能研究院FAIR对PyTorch的推广提供了大力支持。作为当今排名前三的深度学习研究机构,FAIR的支持足以确保PyTorch获得持续开发、更新的保障,不至于像一些个人开发的框架那样昙花一现。如有需要,我们也可以使用Python软件包(如NumPy、SciPy和Cython)来扩展PyTorch。
-
相对于TensorFlow,PyTorch的一大优点是它的图是动态的,而TensorFlow框架是静态图,不利于扩展。同时,PyTorch非常简洁,方便使用。6.如果说TensorFlow的设计是“Make it complicated”,Keras的设计是“Make it complicated and hide it”,那么PyTorch的设计则真正做到了“Keep it simple,stupid”
2 为什么使用Pytorch
-
PyTorch是一个开源机器学习和深度学习框架。PyTorch允许您使用Python代码操作和处理数据并编写深度学习算法,能够在强大的GPU加速基础上实现张量和动态神经网络。
-
PyTorch是一个基于Python的科学计算包,使用Tensor作为其核心数据结构,类似于Numpy数组。不同的是,PyTorch可以用GPU来处理数据,提供许多深度学习的算法。
-
PyTorch提供了完整的使用文档、循序渐进的用户指南,作者亲自维护PyTorch论坛,方便用户交流和解决问题。
-
Meta(前Facebook)人工智能研究院FAIR对PyTorch的推广提供了大力支持。作为当今排名前三的深度学习研究机构,FAIR的支持足以确保PyTorch获得持续开发、更新的保障,不至于像一些个人开发的框架那样昙花一现。如有需要,我们也可以使用Python软件包(如NumPy、SciPy和Cython)来扩展PyTorch。
-
相对于TensorFlow,PyTorch的一大优点是它的图是动态的,而TensorFlow框架是静态图,不利于扩展。同时,PyTorch非常简洁,方便使用。6.如果说TensorFlow的设计是“Make it complicated”,Keras的设计是“Make it complicated and hide it”,那么PyTorch的设计则真正做到了“Keep it simple,stupid”
2_2环境安装
1 新创建一个虚拟python环境
-
创建一个虚拟python环境
conda create -n dlpy39 python=3.9 conda activate dlpy39
-
查看虚拟环境列表:
conda info --envs conda info --e conda env list
-
激活虚拟环境:
source activate dlpy39 conda activate dlpy39
-
删除虚拟环境:
conda remove -n dlpy39 --all
2 镜像源
如果安装Pytorch时安装速度太慢,可以使用使用清华大学开源软件镜像站下载,该镜像站提供了pytorch的GPU版本下载,速度较快。具体链接为:Index of /anaconda/cloud/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorpytorch/
3 Pytorch-cpu 版本
-
安装:
pip install torch==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
-
验证:
import torch torch._version_
2_3张量的基本使用
1 什么是张量
张量,英文为Tensor,是机器学习的基本构建模块,是以数字方式表示数据的形式。PyTorch就是将数据封装成张量(Tensor)来进行运算的。PyTorch中的张量就是元素为同一种数据类型的多维数组。在PyTorch中,张量以"类"的形式封装起来,对张量的一些运算、处理的方法被封装在类中。
-
0维张量:将标量转化为张量得到的就是0维张量
-
1维张量:将向量转化为张量得到的就是1维张量
-
2维张量:将矩阵转化为张量得到的就是2维张量
-
多维张量:将多维数组转化为张量得到的就是多维张量
import torch scalar=torch.tensor(7) print(scalar.ndim) vector=torch.tensor([7,7]) print(vector.ndim) matrix=torch.tensor([[7,8],[9,10]]) print(matrix.ndim) tensor=torch.tensor([[[1,2,3], [3,6,9], [2,4,5]]]) print(tensor.ndim)
2 张量的创建
2.1张量的基本创建方式
-
torch.tensor根据已有数据创建张量
-
torch.Tensor根据形状创建张量,其也可用来创建指定数据的张量
-
torch.IntTensor、torch.FloatTensor、torch.DoubleTensor创建指定类型的张量
import torch import numpy as np #1.根据已有数据创建张量 def test01(): #1.1创建标量张量 data=torch.tensor(10) print(data) #1.2numpy数组,由于data为float64,下面代码也使用该类型 data=np.random.randn(2,3)#2行3列 data=torch.tensor(data) print(data) #1.3列表,下面代码使用默认元素类型float32 data=[[10.,20.,30.],[40.,50.,60.]] data=torch.tensor(data) print(data) #2.创建指定形状的张量 def test02(): #2.1创建2行3列的张量,默认dtype为float32 data=torch.Tensor(2,3) print(data) #2.2注意:如果传递列表,则创建包含指定元素的张量 data=torch.Tensor([10]) print(data) data=torch.Tensor([10,20]) print(data) def test03(): #3.1创建2行3列,dtype为int32的张量 data=torch.IntTensor(2,3) print(data) #3.2注意:如果传递的元素类型不正确,则会进行类型转换 data=torch.IntTensor([2.5,3.3]) print(data) #3.3其他的类型 data=torch.ShortTensor()#int16 data=torch.LongTensor()#int64 data=torch.FloatTensor()#float32 data=torch.DoubleTensor()#float64 if __name__=='__main__': test01() test02() test03()
2.2创建线性和随机张量
-
torch.arange和torch.linspace创建线性张量
-
torch .random .manual_seed随机种子
-
设置torch.randn创建随机张量
2.3创建01张量
-
torch.ones和torch.ones_like创建全1张量
-
torch.zeros和torch.zeros_like创建全0张量
-
torch.full和torch.full_like创建全为指定值张量