
深度学习
文章平均质量分 55
记录笔记
Code_demon
这个作者很懒,什么都没留下…
展开
-
torch.nn.LSTM()详解
ers*num_directions,batch_size,hidden_size)原创 2022-06-07 14:48:41 · 935 阅读 · 0 评论 -
nn.BatchNorm1d()用法介绍
num_features – 特征维度eps – 为数值稳定性而加到分母上的值。momentum – 移动平均的动量值。affine –一个布尔值,当设置为真时,此模块具有可学习的仿射参数。这里其他几个参数都不重要,只需要看num_features就可以了。num_features就是你需要归一化的那一维的维度。nn.BatchNorm1d本身不是给定输入矩阵,输出归一化结果的函数,而是定义了一个方法,再用这个方法去做归一化。我们首先定义了一个归一化的函数BN,需要归一化的维度为100,其他参数原创 2022-06-06 21:20:52 · 1840 阅读 · 0 评论 -
pytorch中torch.stack()函数
将若干个张量在dim维度上连接,生成一个扩维的张量,比如说原来你有若干个2维张量,连接可以得到一个3维的张量。设待连接张量维度为n,dim取值范围为-n-1~n,这里得提一下为负的意义:-i为倒数第i个维度。举个例子,对于2维的待连接张量,-1维即3维,-2维即2维。二、规律分析通过代码运行结果,我们不难发现,函数的运行机制可以等价为:...原创 2022-06-06 21:20:13 · 756 阅读 · 0 评论 -
pytorch中torch.chunk()方法
用来将张量tensor分成很多个块,即切分,可以在不同维度上切分。返回一个张量list。如果指定轴的元素个数被chunk数除不尽,则最后一块元素数量会少。torch.chunk(tensor,chunk数,维度)a.shape=(2,3,2)第0维分成两组,第0维即为最外边一层[],本身就是2 组。因此仍然按照以前的维度b=torch.chunk(a,2,1)第1维原本有3组,要分为两组,则第1维把3个分成2组,第一组有2个,第二组剩1 个元素9个元素分为3组,按顺序切开...原创 2022-06-06 21:19:30 · 3381 阅读 · 0 评论 -
Pytorch之permute函数
1 先看看官方中英文doc:1.1 permute(dims)将tensor的维度换位。参数: - dims (int …*) - 换位顺序例:2 pytorch permute的使用permute函数功能还是比较简单的,下面主要介绍几个细节点:2.1 transpose与permute的异同Tensor.permute(a,b,c,d, …):permute函数可以对任意高维矩阵进行转置,但没有 torch.permute() 这个调用方式, 只能 Tensor.permute():torch.tr原创 2022-06-06 21:18:06 · 1222 阅读 · 1 评论 -
pytorch的两个函数 .detach() .detach_() 的作用和区别
返回一个新的,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个永远不需要计算其梯度,不具有grad。即使之后重新将它的requires_grad置为true,它也不会具有梯度grad这样我们就会继续使用这个新的反向传播时,到该调用detach()的就会停止,不能再继续向前进行传播使用detach返回的和原始的共同一个。1.1 当使用detach()分离tensor但是没有更改这个tensor时,并不会影响backward():从上可见t原创 2022-06-06 21:17:31 · 400 阅读 · 0 评论 -
Pytorch torch.range()&torch.arange()
结果是会包含end的,创建的tensor的类型为float32。结果并不包含end,创建的tensor的类型为int64。原创 2022-06-06 21:16:48 · 332 阅读 · 0 评论 -
Python中argsort()函数的用法
1.先定义一个array数据2.现在我们可以看看argsort()函数的具体功能是什么输出定义为y=array([3,0,2,1,4,5])。argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y。例如:x[3]=-1最小,所以y[0]=3,x[5]=9最大,所以y[5]=5。3.np.argsort()[num]的形式当num>=0时,np.argsort()[num]就可以理解为y[num];当num...原创 2022-06-06 21:16:07 · 2852 阅读 · 0 评论 -
parameters.requires_grad=False :误差仍然反向传播,梯度不更新
首先要明白,误差回传与否,与 requires_grad 的值没有关系。取决于 loss.backward( ) 。再来看误差回传过程中规定是,parameters的梯度计算关闭。我们要知道,param 包括的无非是 权重 和 偏置值。而权重和偏置值的偏导值是多少并不影响误差反向传播,误差反向传播主干部分计算的是每一层激活前神经元的偏导值。综上:param.requires_grad = False 不影响误差反向传播正常进行,但是权重和偏置值不更新了。...原创 2022-06-06 21:15:31 · 1026 阅读 · 1 评论 -
nn.BatchNorm1d()用法介绍
num_features – 特征维度eps – 为数值稳定性而加到分母上的值。momentum – 移动平均的动量值。affine –一个布尔值,当设置为真时,此模块具有可学习的仿射参数。这里其他几个参数都不重要,只需要看num_features就可以了。num_features就是你需要归一化的那一维的维度。nn.BatchNorm1d本身不是给定输入矩阵,输出归一化结果的函数,而是定义了一个方法,再用这个方法去做归一化。我们首先定义了一个归一化的函数BN,需要归一化的维度为100,其他参数原创 2022-06-06 21:14:58 · 7289 阅读 · 1 评论 -
Exact Match(EM)
EM原创 2022-06-06 21:14:31 · 2978 阅读 · 0 评论 -
torch.cuda.amp自动混合精度训练 —— 节省显存并加快推理速度
torch.cuda.amp自动混合精度训练 —— 节省显存并加快推理速度文章目录torch.cuda.amp自动混合精度训练 —— 节省显存并加快推理速度1、什么是amp?2、为什么需要自动混合精度(amp)?3、如何在PyTorch中使用自动混合精度?3.1 autocast3.2、GradScaler4、多GPU训练1、什么是amp?amp:Automatic mixed precision,自动混合精度,可以在神经网络推理过程中,针对不同的层,采用不同的数据精度进行计算,从而实现节省显存和加快原创 2022-05-06 21:15:39 · 6192 阅读 · 2 评论 -
.requires_grad固定部分参数进行网络训练
.requires_grad固定部分参数进行网络训练文章目录.requires_grad固定部分参数进行网络训练1. 只训练部分层2. 固定部分层参数3.检查部分参数是否固定4.查看可训练参数5.查看网络总参数6. 不同层设置不同学习率7. [PyTorch](https://so.youkuaiyun.com/so/search?q=PyTorch&spm=1001.2101.3001.7020)更新部分网络,其他不更新1. 只训练部分层class RESNET_attention(nn.Module原创 2022-05-06 20:19:46 · 895 阅读 · 0 评论 -
Pytorch model中的遍历模型的参数
Pytorch model中的遍历模型的参数文章目录Pytorch model中的遍历模型的参数0、model.named_parameters()1、model.parameters()2、model.state_dict()**2.1 Module的层的权值以及bias查看****2.2 优化器optimizer的state_dict()方法**3、总结4、引用0、model.named_parameters()return:返回model的所有参数的(name, tensor)的键值对。可以修改原创 2022-05-06 19:20:05 · 2516 阅读 · 1 评论