Tai Fook
码龄8年
关注
提问 私信
  • 博客:84,949
    社区:541
    85,490
    总访问量
  • 16
    原创
  • 1,180,706
    排名
  • 42
    粉丝
  • 0
    铁粉

个人简介:高歌猛进!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2016-09-01
博客简介:

撸猫写博客

查看详细资料
个人成就
  • 获得164次点赞
  • 内容获得38次评论
  • 获得347次收藏
  • 代码片获得279次分享
创作历程
  • 4篇
    2021年
  • 8篇
    2020年
  • 5篇
    2019年
  • 2篇
    2018年
  • 6篇
    2017年
成就勋章
TA的专栏
  • Pytorch
    3篇
  • pytorch分布式训练
    2篇
  • Python
    1篇
  • Int
  • 多线程
    3篇
兴趣领域 设置
  • 人工智能
    opencvtensorflow
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

nvidia.dali:深度学习加速神器!

  最近准备准备整合一个基于pytorch的深度学习平台,把常用的训练推理流程、模型、数据管理、metric测试以及各种有效的黑科技攒到一起,作为个人的使用工具可以提升算法开发和实验效率。为了验证不同特性的有效性选择在比较有说服力的imagenet上进行实验。之前也做过很多次imagenet的训练和模型复现,但是训练一次imagenet比较耗时。最近使用上了一个比较有效的数据预处理框架:nvidia.dali,感觉效果不错。DALI的概念  Nvidia DALI,NVIDIA’s Data Loadi
原创
发布博客 2021.01.29 ·
6438 阅读 ·
13 点赞 ·
6 评论 ·
56 收藏

Pytorch采坑记录:DDP加载之前的checkpoint后loss上升(metric下降)

  最近在鼓捣使用pytorch的distributeddataparallel这个API搭一个数据并行的训练测试任务,过程中遇到了一个问题,做一下记录。1、问题  使用DDP打包了一个模型训练了一段时间,loss不断下降metric不断上升,一切都是很正常的现象。当因为意外暂停或者手动暂停更改学习率而停止了程序,再开启程序加载之前的checkpoint继续训练,却发现loss突然比之前上升或者metric比之前下降了很多。仔细看了一下loss的值,发现直接回到刚开始第一次训练模型时的水平,仿佛chec
原创
发布博客 2021.01.22 ·
4649 阅读 ·
10 点赞 ·
7 评论 ·
11 收藏

Pytorch采坑记录:每隔num_workers个iteration数据加载速度很慢

  最近在做某个视觉任务的模型训练,由于数据量比较少为了效果好一点,决定现在imagenet上pretrain一下骨干网络。但是在训练的时候遇到了一个问题:每隔num_workers个iteration数据加载都很慢,通过查找资料和代码搞清了这个问题。背景  设计了一个网络做目标检测,骨干网络是自己diy的因此没有pretrain的模型。而目标检测的数据集比较小,为了把模型训的好一点决定现把骨干网络搭一个分类头做个分类模型,在ImageNet上面pretrain一下。于是乎下载了imagenet的数据集
原创
发布博客 2021.01.19 ·
7192 阅读 ·
41 点赞 ·
4 评论 ·
55 收藏

python闭包与装饰器

  今天写一篇儿纸来解释一下python下的闭包的概念,再说一下python里非常有用的一个特性:装饰器。我自己之前在学习这部分内容的时候很蒙,看了很多blog的解释才理解。希望能解释清楚一些,和大家一起讨论。一、参数作用域与闭包  任何一门语言都有参数作用域的概念,python也不例外。总体来说,在哪个作用域里定义的变量一般就应该在哪个作用域里使用,尽量不要跨作用域使用。当然python也提供了跨作用域使用变量的功能,但是处理起来要小心一些,否则就会出错误。  一般的,在某个作用域内定义的变量,在该
原创
发布博客 2021.01.05 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

pytorch分布式训练(二):torch.nn.parallel.DistributedDataParallel

  之前介绍了Pytorch的DataParallel方法来构建分布式训练模型,这种方法最简单但是并行加速效果很有限,并且只适用于单节点多gpu的硬件拓扑结构。除此之外Pytorch还提供了DistributedDataParallel来构建分布式模型,并行加速程度更高,且支持多节点多gpu的硬件拓扑结构。一、Overall Design  整体的系统方案设计intuition也非常直观:每个gpu上都有一个local的model和一个mini-batch的数据,进行数据分布式训练时,每个gpu进行当前
原创
发布博客 2020.12.24 ·
2657 阅读 ·
5 点赞 ·
0 评论 ·
13 收藏

pytorch分布式训练(一):torch.nn.DataParallel

  本文介绍最简单的pytorch分布式训练方法:使用torch.nn.DataParallel这个API来实现分布式训练。环境为单机多gpu,不妨假设有4个可用的gpu。一、构建方法使用这个API实现分布式训练的步骤非常简单,总共分为3步骤:1、创建一个model,并将该model推到某个gpu上(这个gpu也将作为output_device,后面具体解释含义),不妨假设推到第0号gpu上,device = torch.device("cuda:0")model.to(device)2、将数
原创
发布博客 2020.12.18 ·
5164 阅读 ·
12 点赞 ·
1 评论 ·
44 收藏

python多线程基本操作

进程 && 线程 进程:是内存中的一个独立的句柄,我们可以理解为一个应用程序在内存中就是一个进程。 各个进程之间是内存相互独立,不可共享的 线程:每个应用运行之后就会对应启动一个主线程,通过主线程可以创建多个字线程,各个线程共享主进程的内存空间。 关于线程、进程...
转载
发布博客 2020.12.17 ·
268 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

RLock vs Lock

转载自:https://blog.csdn.net/ybdesire/article/details/80294638总结:Lock:该Lock只能被一个线程acquire一次,acquire后该Lock就处于Locked状态,必须release后才能被相同线程或其他的不同线程再次acquire一次。RLock:该Lock可被同一线程多次acquire(如线程中含有递归或循环逻辑,递归或多次acquire该Lock),待该线程所有针对该Lock的acquire都被release后,才能被相同线程或其
转载
发布博客 2020.12.17 ·
187 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

并发、并行、线程、进程与CPU基本概念

转载自:https://blog.csdn.net/qq_21480607/article/details/100135524首先我们需要了解一些基础概念: 串行,并发与并行 串行 多个任务,执行时一个执行完再执行另一个。 并发 多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换。 并行 每个线程分配给独立的核心,多个线程同时运行。 一、多核多线程 cpu的超线程技术 以2核4线程的电脑为例,电脑只有一个处理器(cpu)芯片,2个核是指在一
转载
发布博客 2020.12.16 ·
307 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

傻子坐飞机问题的求解

昨晚睡觉前刷手机,看到一道傻子坐飞机的题目,是一道概率的题目.想了一下觉得还挺有意思的,写一个比较容易理解的解题方法.首先描述一下问题.傻子坐飞机:假设有n个人(编号分别为从1,2,3…,n-1,n)要上飞机坐在n个座位上,飞机上的n个座位也有相应的编号1,2,3,…,n-1,n,假设每个人的座位选择规则为:第一个人是个傻子,他上了飞机后会从n个座位中随机选择一个坐下.除了第一个傻子以外,...
原创
发布博客 2020.04.22 ·
1880 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

pytorch求导

前言:构建深度学习模型的基本流程就是:搭建计算图,求得损失函数,然后计算损失函数对模型参数的导数,再利用梯度下降法等方法来更新参数。搭建计算图的过程,称为“正向传播”,这个是需要我们自己动手的,因为我们需要设计我们模型的结构。由损失函数求导的过程,称为“反向传播”,求导是件辛苦事儿,所以自动求导基本上是各种深度学习框架的基本功能和最重要的功能之一,PyTorch也不例外,后面有时间会写一下tens...
转载
发布博客 2020.03.27 ·
6156 阅读 ·
24 点赞 ·
3 评论 ·
56 收藏

主成分分析原理的数学证明

主成分分析原理的数学证明  主成分分析(Princle Componet Analysis, PCA)是一种经典的无监督方法,可以用来降低特征的维度,在稍微牺牲点性能的前提下减小运算量,提升计算效率.最近闲暇时间,看了一下主成分分析的数学证明,其中有一些部分搞的不是很清楚,翻了线性代数的教材和李航老师的《统计学习方法》,也参阅了一些博客的内容,基本把PCA的原理搞清楚了.做一个文字的记录,方便以...
原创
发布博客 2020.03.15 ·
1565 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

二分法采用五五分平均复杂度最小(相比四六分或三七分等)的定量证明方法

二分法采用五五分平均复杂度最小(相比四六分或三七分等)的定量证明方法  有一天晚上我深夜失眠,躺在床上辗转反侧,无法入睡。在床上滚来滚去,觉得十分无聊,不知怎么的想起了二分法。这是我们解决数据结构或算法问题中常用的一种divide and conquer的分治手段。但是二分法中的这个二,说的是把一个问题分解成两个子问题递归求解,并没有说明两个子问题要平均分。那么为什么通常大家都会进行平均的五五分...
原创
发布博客 2019.09.02 ·
739 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

绕固定坐标轴旋转与绕自身坐标轴旋转一致性证明

  最近在看人头姿态和视线方向检测的东西,需要考虑坐标系与坐标系之间的旋转.用欧拉角表示坐标系的旋转时存在两种旋转方法,另外旋转的顺序也会对旋转结果有影响,查了一些资料总结一下结果.  描述坐标系B\textbf{B}B相对于坐标系A\textbf{A}A的姿态有两种方式:第一种是绕固定坐标轴旋转,第二种是自身坐标轴旋转.假设坐标系A\textbf{A}A为世界坐标系(不动),坐标系B\text...
原创
发布博客 2019.05.15 ·
9940 阅读 ·
31 点赞 ·
8 评论 ·
48 收藏

模型压缩与加速:Octave Convolution

  自AlexNet刷新了ImageNet比赛的最佳记录以来,神经网络的又一次高潮猛烈的到来了.一些列各种各样的网络层出不穷,图像/音频/文本等各种任务下都开始了神经网络一统天下的声音.然而神经网络虽然很火,近些年在落地端却鲜有比较成功的案例,其中一个很重要的原因是这些网络需要很强的计算资源,基本都要跑在PC或者服务器上.因此个人认为深度学习如果想在工业上获得比较大的推广和应用,解决模型大小与推理...
原创
发布博客 2019.04.28 ·
705 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

caffe与tensorflow框架下卷积的维度计算与一致性证明

  对于卷积运算,假设输入维度为iii,卷积核的维度为www,步长为sss,这里为了叙述方便仅描述一维且忽略pad(pad可以看做已经乘以2加到输入维度中去了)。在caffe框架下,按照平移的原则一步步算卷积,如果最后还剩下若干个不够卷积核大小的数,则直接被抛弃,因此卷积的输出维度为:out = ⌊i−ws⌋\lfloor\frac{i-w}{s}\rfloor⌊si−w​⌋+1  而在t...
原创
发布博客 2019.04.10 ·
1489 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

Gaze Estimation笔记——data normalization

  最近在看一些视线检测(Gaze Estimation)相关的东西,由于之前没怎么接触过,所以也算是从头开始,很多新的东西要学。写一个系列笔记,把慢慢看懂的东西记录下来,做个整理,也方便以后回头查阅的时候能快速捡起来。  第一篇写的是基于normalization图像的工作,包括一系列类似的方法。这类方法的关键之处在于对输入的图像(face/eye)先进行normalization操作,将不同...
原创
发布博客 2019.04.10 ·
5257 阅读 ·
11 点赞 ·
3 评论 ·
39 收藏

十大排序算法

https://www.cnblogs.com/onepixel/articles/7674659.html
转载
发布博客 2018.03.20 ·
257 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux系统c++编译连接过程,动态库与静态库

https://www.cnblogs.com/ucas/p/5778664.html(linux系统c++编译连接过程)http://www.cnblogs.com/skynet/p/3372855.html(动态库与静态库)
转载
发布博客 2018.03.08 ·
520 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Understanding LSTM Networks

http://colah.github.io/posts/2015-08-Understanding-LSTMs/
转载
发布博客 2017.11.01 ·
241 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多