小白入手Pytorch深度学习(b站视频学习笔记)

一.深度学习的介绍

深度学习是机器学习(手动进行特征提取)的分支,是一种以人工神经网络为架构,对数据进行特征学习(自动进行特征提取)的算法。深度学习应用场景多样,自行百度搜索。

1.区别

a.1.机器学习需要有人工特征提取的过程;

   2.机器学习数据少

b.1.深度学习每有人工特征提取的过程,特征提取的过程可以通过深度神经网络自动完成

    2.深度学习需要大量的训练数据集,会有更高的效果,深度学习训练深度神经网络需要大量的算力,因为其中有更多的参数

2.框架

使用facebook出的pytorch(语法和python相同),使用动态计算,代码调试更简单。

二.神经网络的介绍

人工神经网络,简称神经网络,模仿生物神经网络的结构和功能的数学模型,用与对函数进行估计或近似。(应用例如机器视觉和语言识别)

1.神经元(最小的神经网络结构,神经网络结构基础单元,相互连接组成神经网络)

生物神经网络作用机理请参考高中生物教程

2.单层神经网络

3.感知机(两层神经网络)

作用:把n维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断这个向量位于超平面的那一边。简单的二分类模型,给定阈值,判断数据属于哪一部分。

4.多层神经网络

输入层和特征数量差不多,输出层和分类类别数量差不多

全连接层:第n层和第n-1层中神经元两两之间都有链接

5.激活函数

所以需要激活函数,重要作用,增强模型的非线性分割能力,提高模型稳健性(拟合更多的不同的数据,效果更好),缓解梯度消失问题,加速模型收敛(模型训练得更快)等

系统:函数,f,模型,f(x)=y

线性则有f(x1+x2)=y1+y2;f(kx1)=ky1

像素点(随意组合)-->高级特征-->更高级特征(知道得出结果)

三.pytorch安装方法(自行搜索最新安装方法)

四.张量Tensor

1.各种数值数据称为张量

1.0阶张量:标量,常数

2.1阶张量:向量

3.2阶张量:矩阵

4.3阶张量

5.n阶张量

2.张量的创建方法

1.torch.tensor(list)使用python中的列表和序列创建tensor,或者使用numpy中的数组创建

2.torch.empty()/zeros/ones

3.torch.rand()/randint()/randn()

3.张量的常用方法和属性

1.获取tensor()中的数据(当tensor中只有一个数据可用时)tensor.item()

2.转化为numpy数组 z.numpy()

3.获取tensor形状,tensor.size(),括号里填入数据表示获取某一个维度的形状

4.(数据拉伸成一整条,然后按照每块大小切分)形状改变,tensor.view(),浅拷贝,不赋值的话不会改变

5,获取维数 tensor.dim

6.tensor.max(),tensor.min(),tensor,std()

7.(拉成一整条,如(3,2,4),先分3块,每块切成2部分,再每块切成4部分)转置 tensor.transpose()(括号里写两个维度,转置这两个维度),tensor.permute()(口号里可以写多个维度,转置多个维度)

8.获取值以及复制如 tensor[1,3]获取第一行第三列的值,可对其赋值tensor[1,3]=100;

9,tensor 的切片tensor[0,:,:]获取第一维度的值

4.tensore的数据类型

1.获取tensor的数据类型:tensor.dtype

2.创建数据的时候指定类型 torch.tensor(array,dtype) torch.ones(array,dtype)

3.类型的修改 tensor.float()/long()/int()

4.torch.tensor和torch.Tensor的区别

torch.Tensor和torch.FloatTensor一样,传入数字时表示生成tensor的形状,内容随机填充,当传入列表或可迭代对象时,才表示创建一个内容已知的tensor,torch.tensor为创建tensor的方法

5.tensor和tensor 相加 直接x+y 或者torch.add(x,y)或者x.add(y),x.add_(y)(对x进行修改,把y加到x上)带有下划线的方法意思就是进行就地修改

6.tensor和数字进行运算 x+10

7.CUDA中的tensor

CUDA是NVIDIA推出的运算平台,CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能解决复杂的计算问题。torch.cuda这个模块增加了对CUDA tensor 的支持,能够在cpu和gpu上使用相同的方法操作tensor。通过.to方法能够把tensor转移到另一个设备(比如从cpu转到gpu)

#device=torch.device("cuda:0") if torch.cuda.is_availble() else "cpu")      (当电脑支持CUDA,字符串是CUDA,否则是CPU,还可指定是哪块PU)

实例化一个device,每个tensor“to”以下就好了

a,实例化device:torch.device=torch.device("cuda:0") if torch.cuda.is_availble() else "cpu") 

b.tensor.to(device)#把tensor转化为CUDA持的tensor,或者cpu支持的tensor支

五.梯度下降和反向传播

梯度就是一个向量,导数+变化最快的方向(学习前进的方向)

1.梯度下降

a.算出梯度

b.w=w-aw'使得loss最小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2301_80355452

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值