
PyTorch
文章平均质量分 91
FesianXu
腾讯-微信事业群-高级算法工程师, 百度-搜索策略部-前高级算法工程师。 主要从事多模态检索、视频检索、信息检索,大模型落地应用等领域工作。
展开
-
einsum的基础使用
einsum全称为Einstein summation convention,是一种求和的范式,在很多基于多维张量的张量运算库,如numpy,tensorflow,pytorch中都有所应用。einsum可以用一种很简单的,统一的方式去表示很多多维张量的运算。让我们以numpy中的einsum为例子,理解这种运算表达方式。这里贴出numpy中的einsum的API:numpy.eins...原创 2018-07-21 13:48:20 · 9862 阅读 · 0 评论 -
pytorch中的L2和L1正则化,自定义优化器设置等操作
在pytorch中进行L2正则化,最直接的方式可以直接用优化器自带的weight_decay选项指定权值衰减率,相当于L2正则化中的λλ\lambda,也就是: Lreg=||y−y^||2+λ||W||2(1)(1)Lreg=||y−y^||2+λ||W||2\mathcal{L}_{reg} = ||y-\hat{y}||^2+\lambda||W||^2\tag{1} 中的λλ\l...原创 2018-08-15 17:52:32 · 27875 阅读 · 38 评论 -
用pytorch踩过的坑
pytorch的交叉熵nn.CrossEntropyLoss在训练阶段,里面是内置了softmax操作的,因此只需要喂入原始的数据结果即可,不需要在之前再添加softmax层。这个和tensorflow的tf.softmax_cross_entropy_with_logits如出一辙.[1][2]Reference[1]. Why does CrossEntropyLoss include...原创 2018-10-01 13:38:12 · 9966 阅读 · 0 评论 -
在pytorch中进行预训练模型的加载和模型的fine-tune操作
联系方式:e-mail: FesianXu@163.comQQ: 973926198github: https://github.com/FesianXu如有谬误,请联系指正。转载请注明出处文章目录基模型参数加载从持久化模型开始加载模型吧部分加载模型模型Fine-Tune给每一层或者每个模型设置不同的学习率Pytorch内置的模型Reference我们在使用pytorch的时候,经常...原创 2018-12-13 10:12:42 · 12848 阅读 · 10 评论 -
Pytorch的BatchNorm层使用中容易出现的问题
前言:本文主要介绍在pytorch中的Batch Normalization的使用以及在其中容易出现的各种小问题,本来此文应该归属于[1]中的,但是考虑到此文的篇幅可能会比较大,因此独立成篇,希望能够帮助到各位读者。如有谬误,请联系指出,如需转载,请注明出处,谢谢。∇\nabla∇ 联系方式:e-mail: FesianXu@163.comQQ: 973926198github: htt...原创 2019-01-14 14:44:00 · 53703 阅读 · 68 评论 -
[临时笔记] pytorch报错消息及其解决纪录
文章目录在指定优化器的优化变量时多GPU情况下Reference前言:本文主要记载在pytorch使用过程中遇到的一些报错以及解决方案等,在以前的文章[1]中,主要涉及的是比较容易出现的原理上的,或者难以发现的bug,而这里的主要是系统抛出的error或者warning的解决方法,其各有侧重,欢迎各位贡献idea。如有谬误,请联系指出,如需转载,请注明出处,谢谢。∇\nabla∇ 联系方式:...原创 2019-01-09 15:35:46 · 5521 阅读 · 1 评论 -
在pytorch中动态调整优化器的学习率
在深度学习中,经常需要动态调整学习率,以达到更好地训练效果,本文纪录在pytorch中的实现方法,其优化器实例为SGD优化器,其他如Adam优化器同样适用。一般来说,在以SGD优化器作为基本优化器,然后根据epoch实现学习率指数下降,代码如下:step = [10,20,30,40]base_lr = 1e-4sgd_opt = torch.optim.SGD(model.paramet...原创 2019-02-21 11:56:55 · 3871 阅读 · 2 评论 -
pytorch手动实现滑动窗口操作,论fold和unfold函数的使用
在卷积网络中,经常会需要用到卷积核滑动窗口的操作,如下图所示。这个操作在大多数的深度学习框架中,都被封装的很好,以至于我们并不需要显式地调用便可以实现卷积网络的这个操作。但是,大部分深度学习框架也是提供了显式地进行滑动窗口操作的API的,在pytorch中就是unfold和fold。接下来我们来探讨下这两个函数的使用。在pytorch中,和unfold有关的有:torch.nn.Unfol...原创 2019-03-04 21:16:33 · 32098 阅读 · 22 评论 -
在pytorch中对非叶节点的变量计算梯度
在pytorch中一般只对叶节点进行梯度计算,也就是下图中的d,e节点,而对非叶节点,也即是c,b节点则没有显式地去保留其中间计算过程中的梯度(因为一般来说只有叶节点才需要去更新),这样可以节省很大部分的显存,但是在调试过程中,有时候我们需要对中间变量梯度进行监控,以确保网络的有效性,这个时候我们需要打印出非叶节点的梯度,为了实现这个目的,我们可以通过两种手段进行。注册hook函数Tenso...原创 2019-08-11 10:47:23 · 3538 阅读 · 0 评论