- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 Paper Reading - 基础系列 - Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
更多可关注计算机视觉-Paper&Code - 知乎Abstract恺明出品必属精品,目前在Facebook AI Research,多的不用多说。可以说这篇17年的论文即使到现在也绝不过时,其中一些思想和实验都给人很深的启发总结来说本文主要以下贡献作者展示了256GPUS的超强财力,表明batchsize不是越大越好,达到极限16k之后learning rate,validation error都降不下来 提出hyper-parameter-free linear sca..
2022-03-23 10:37:03
27793
11
原创 【万能皆可链接】C++中的动态链接库编译与加载库函数,Cython编译后的.so使用C++加载
什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 windows上对应的是.lib .dll linux上对应的是.a .so静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。静态库与汇编生成的目标文件一起链接为可执行文件,那么静态库必定.
2022-05-20 21:13:47
2259
79
原创 【附源码+Pybind + Cython Python性能提升方案】该拿什么拯救你,Slow Python
目录Cython介绍性能比对纯C++Pybind11PythonCython总结循环机制算数操作内存分配更多情况在做深度学习部署以及加速过程中,性能计算是非常重要的,这也是Python的一大痛点,本文主要介绍各种Python加速的方法以及使用Ipython,Jupyter中的%time方法,非常实用,并且也抛砖引玉,阐述了Why python so slow。整体测试代码目录如下Cython介绍简单来说Cython适合以下场景1. 因为
2022-05-12 14:15:00
2037
70
原创 【CMAKE】c++代码编译加速以及优化项
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html一般来说,如果不指定优化标识的话,gcc就会产生可调试代码,每条指令之间将是独立的:可以在指令之间设置断点,使用gdb中的 p命令查看变量的值,改变变量的值等。并且把获取最快的编译速度作为它的目标。当优化标识被启用之后,gcc编译器将会试图改变程序的结构(当然会在保证变换之后的程序与源程序语义等价的前提之下),以满足某些目标,如:代码大小最小或运行速度更快(只不过通常来说,..
2022-05-11 11:47:51
15703
15
原创 【机器视觉 + HALCON】 - 卡尺1D测量原理
相比于计算机视觉领域使用深度学习方法而言,传统视觉方法虽然学习与编码成本很高,但是相较之下更为靠谱,每个操作都是可解释,可复现的。对于一些精度要求较高,训练样本很少且检测场景比较模板化的任务,使用传统视觉方法是非常有效的本文简单介绍一下HALCON中1D卡尺测量原理,该部分也是传统视觉方法中最基础也是最重要的算法HALCON Documentation: MVTec SoftwareFind detailed documentation and manuals for MVTec HALCON he
2022-05-09 18:12:45
5770
13
原创 Paper Reading - Loss系列 - Focal Loss for Dense Object Detection
确实发现大神的文章都比较简单明了实用 - ICCV2017计算机视觉-Paper&Code - 知乎Abstract总结主要为以下几点OHEM算法虽然增加了错分类样本的数量,但是直接把容易样本扔掉了,可会导致过杀率上升,作者同时也做了对比实验,AP有3.+的提升 Focal Loss可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本下面这张图展示了 Focal Loss 取不同的gama时的损失函数下降。Algorithm文章对最基本的对交叉熵进行改进,作
2022-05-08 22:46:46
2846
60
原创 Paper Reading - 综述系列 - 计算机视觉领域中目标检测任务常见问题与解决方案
目录小目标检测数据方面Label Smoothing模型方面样本不均衡目标遮挡More更多可见计算机视觉-Paper&Code - 知乎小目标检测数据方面将图像resize成不同的大小 对小目标进行数据增强,过采样策略oversampling,重复正样本数 在图片内用实例分割的Mask抠出小目标图片再使用paste等方法常见的几种数据增强方法如下cutout:将图片区域随机扣除 cutmix:将cutout扣除后的区域用同一batch中样本进行
2022-05-05 10:11:45
7353
72
原创 Paper Reading - 综述系列 - Hyper-Parameter Optimization(下)
更多可见计算机视觉-Paper&Code - 知乎目录搜索策略网格搜索随机搜索贝叶斯优化结论接着上一篇继续说搜索策略网格搜索将每个超参数的搜索空间离散化为笛卡尔积。然后使用每个超参数配置独立并行的进行训练,最后选择最好的。简单粗暴且会导致维度灾难,训练次数与超参数量成指数关系随机搜索网格搜索的一种变体,从某个参数分布中随机采样可能的参数值进行实验,搜索过程持续到候选集耗尽,或者性能满足条件为止。与网格搜索相比,随机搜索有以下优点:随机搜索的各个
2022-05-03 11:31:57
3367
26
原创 Paper Reading - 综述系列 - Hyper-Parameter Optimization(上)
自开发深度神经网络以来,几乎在日常生活的每个方面都给人类提供了比较理性的建议。但是,尽管取得了这一成就,神经网络的设计和训练仍然是具有很大挑战性和不可解释性,同时众多的超参数也着实让人头痛,因此被认为是在炼丹。因此为了降低普通用户的技术门槛,自动超参数优化(HPO)已成为学术界和工业领域的热门话题。本文主要目的在回顾了有关 HPO 的最重要的主题。主要分为以下几个部分模型训练和结构相关的关键超参数,并讨论了它们的重要性和定义值范的围 HPO中主要的优化算法及其适用性,包括它们的效率和准确性 HP
2022-04-30 22:20:57
9980
57
原创 【mypy+pybind11】静态检查与代码提示补全神器
目录介绍安装使用Pybind11与Mypy结合介绍众所周知,Python是一门动态类型语言,在运行期间才去做数据类型检查的语言,有以下优点1. 开发迅速。 利用传统的静态语言要开发几周的功能和特性,使用动态语言也许几天甚至几个小时就可以实现。2. 代码量少。静态函数式语言的表达能力也很强3. 测试便捷。 很容易实现反射等动态特性4. 内置丰富的原生数据结构。 提供了大量操作(如数组分片,字典更新等)5. 简单易学。 动态语言的语法相对简单,helloworld
2022-04-29 15:08:57
9902
11
原创 Paper Reading - 基础系列 - 常用评价指标 ROC、PR、mAP
更多可见计算机视觉-Paper&Code - 知乎目录混淆矩阵 (Confusion Matrix)查准率/精确率 Precision召回率/检出率/查全率 Recall过杀率 Kill Rate漏杀率 Miss Kill RatePR曲线、mAP(Mean-Average-Precision)ROC曲线(receiver operating characteristic curve)、AUC(Area under Curve)写了这么多突然发现忘了最重要的一
2022-04-28 10:11:14
9595
13
原创 Paper Reading - Model系列 - ShuffleNet Chanel Attention
ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile DevicesPaper更多可见计算机视觉-Paper&Code - 知乎目录ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile DevicesAbstractRelated WorkChannel Shuffle深度可分离
2022-04-27 12:45:41
7697
14
原创 Paper Reading - 综述系列 - Everything you need to know about NAS(下)
目录One-ShotEfficient Nerual Architecture SearchSlimmable Neural NetworksBigNASAutoMLSummaryPaper Reading - NAS系列 - Everything you need to know about NAS - 综述 - 知乎接着上文继续说,接下来主要阐述目前主流的One-Shot NAS方法One-Shot最开始关于NAS思路是利用将神经网络模型结构抽象化,从小网络或者各
2022-04-27 12:43:45
7237
5
原创 Paper Reading - Loss系列 - 深度学习中各种常见Loss与组合综述[WIP]
目录回归误差交叉熵 CEBCECEFocal LossDice LossLovasz-Softmax Loss更多可见计算机视觉-Paper&Code - 知乎本文主要希望总结下目前学术与业界常用到的Loss函数以及其对应的优缺点回归误差两种loss不同位置的梯度情况MAE mean average error(L1损失)主要用于机器学习,回归问题中。均方误差对于异常值相对不敏感,但是由于他的梯度是一直不变的,即使loss很小梯度都非常大.
2022-04-24 11:43:49
5584
16
原创 Paper Reading - 基础系列 - Rethinking ImageNet Pre-training
论文链接Kaiming He 大神不用多说更多可见计算机视觉-Paper&Code - 知乎Abstract先总结一下论文的几点要点,果然大牛的论文都是清楚简单易懂,各种消融对比试验砸脸上当训练任务对位置信息非常敏感时,比如分割、key-point,imagenet pretrained用处不大 数据集可用标注数据越多,预训练的作用越小 当使用更强大的数据增强方案时,预训练反而会损害模型的性能 pretrain可以使结果更快收敛,但是数据量足够大情况下随机初始化后得到的
2022-04-24 11:43:40
3234
3
原创 Paper Reading - 综述系列 - Everything you need to know about NAS (上)
Paper Reading - NAS系列 - Everything you need to know about NAS - 综述 - 知乎开了新坑,Nas与AutoML系列,本文作为综述,主要阐述了作为深度学习领域的新秀的AutoML 和 NAS的发展现状以及未来预期原文enas代码AbstractAutoML 和 NAS不需要过多的工作量,他们可以使用最暴力的方式让你的机器学习任务达到非常高的准确率。既简单又有效率。那么 AutoML 和 NAS 是如何起作用的呢Neural
2022-04-22 16:28:58
15113
27
原创 【ONNXRuntime+visual studio+CMake+cuda环境搭建】
环境需求CUDA10.2 可不需要visual studio2019CmakeonnxruntimeCmakeCmake安装直接下载win x86_64Download | CMakecmake-3.23.1-windows-x86_64.msi 然后安装到系统目录就可以了安装ONNXRuntimYou may either get a prebuit onnxruntime fromReleases · microsoft/onnxruntime ...
2022-04-20 19:18:50
18177
23
原创 【挖坑】深度学习模型的可复现性
众所周知,深度学习是个黑盒,每次training都像在抽奖,但是对于模型落地,以及作为工程师来说,不可复现=没有意义。那么对于Pytorch如何能够尽可能的保证模型训练结果能够复现呢。本文收集整理了可能导致模型难以复现的原因,虽然不可能完全避免随机因素,但是可以通过一些设置尽可能降低模型的随机性训练层面Pytorch官方有提及到复现的问题Reproducibility - PyTorch 1.11.0 documentationPytorch不保证跨不同PyTorch 版本或不同平台的下的模型可
2022-04-20 17:24:03
15013
10
原创 Paper Reading - 基础系列 - Bag of Freebies for Training Object Detection Neural Networks
Bag of Freebies for Training Object Detection Neural Networks更多可见计算机视觉-Paper&Code - 知乎PaperAbstract本文和cls一样都是由AWS发出,找到了财富密码,多的不说,就是干饭sota,对于论文里面的表格真是有必要学习的,对于几个点的增加,只要缩小y轴距离看着就很明显了。总的来说在复杂的目标检测任务下,数据至关重要。其中论文中提到的以下点贡献系统地评估了各种训练trick对目标检测模型的影响
2022-04-19 19:07:46
20610
14
原创 Paper Reading - 基础系列 - Tricks for Image Classification with CNN
Bag of Tricks for Image Classification with Convolutional Neural Networks更多可见计算机视觉-Paper&Code - 知乎PaperAbstract本文由AWS发出,不愁卡,18年训练用到了8张V100。对于各个有效的训练Trick都做了对比和单一分析。通过将这些改进组合在一起,能够改进各种 CNN 模型,甚至魔改ResNet50都好过当时最新的SE-ResNeXt-50AlgorithmEffic
2022-04-16 19:42:03
18846
8
原创 【c++ 指针与引用区别汇总】继承与多态的注意点
精简版:指针:变量,独立,可变,可空,替身,无类型检查;引用:别名,依赖,不变,非空,本体,有类型检查;相同点: 都是地址的概念不同点: 指针是一个实体(替身);引用只是一个别名(本体的另一个名字) 引用只能在定义时被初始化一次,之后不可改变,即“从一而终”;指针可以修改,即“见异思迁”; 引用不能为空(有本体,才有别名);指针可以为空; sizeof 引用,得到的是所指向变量的大小;sizeof 指针,得到的是指针的大小; 指针 ++,是指指针的地址自增
2022-04-11 10:29:31
20554
9
原创 【PyBind11】Python+C++接口,模型部署优化神器
目录访问struct/class的公有非成员如果private 用魔法方法使用c++函数如果碰到需要返回引用的初始化写法默认参数的写法在 Python 中重写虚函数自动监听变化访问struct/class的公有非成员对于公有非成员变量,非private的访问,pybind11提供了def_readwrite()方法来支持。具体定义如下py::class_<Pet>(m, "Pet") .def(py::init<const st
2022-04-11 10:27:36
22388
2
原创 【C++ + VSCode + Clang Format Google format 、\r\n回车符设置】
vscode的clang-format插件就提供了clang和C/C++代码的Style的检查和格式化功能,而且还能指定VisualStudio、LLVM、Google等多种code style格式,点击vscode主窗口左侧的的Extensions,输入clang-format搜索到这个插件,并进行安装
2022-03-28 10:33:19
24500
2
原创 【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python package
如何安装请详见上文【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python接口_子韵如初的博客-CSDN博客w不需要安装啥x11 、 xming直接mobxterm可以搞定点击右上角的X server打开可视化服务器然后 apt install x11-apps -yxclock 搞定从mobxterm可以看到display的端口X11显示可视化的原理是就是通过X协议,类似于http对linux于w
2022-03-27 14:36:25
37350
6
原创 【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python接口
不需要安装啥x11 、 xming直接mobxterm可以搞定点击右上角的X server打开可视化服务器然后 apt install x11-apps -yxclock 搞定从mobxterm可以看到display的端口X11显示可视化的原理是就是通过X协议,类似于http对linux于windows上进行通信。那么他们通信的ip地址就是这个DISPLAY=localhost:10.0比如一个XClinet要在屏幕 上输出一个圆,X应用程序只负责...
2022-03-27 13:28:02
31909
原创 【CMAKE】入门与语法
Why CMake一个c++程序,编译过程中最关键的就是编译和链接,链接需要的是各种静态.a和动态.so .dll的库文件(里面存放着真正运行的逻辑)。 同时也需要include头文件(头文件用于定义函数,不包含实现。这么拆分之后,就可以让用户只看到api,无法看到实现源码了)。 那么cmake就能够很好地解决程序应该去哪里去寻找到这些链接库文件的问题更多可关注计算机视觉-Paper&Code - 知乎有能力的同学可以直接参考cmake官方FindPython — CMake 3
2022-03-27 13:09:54
31563
原创 【让LINUX可视化把结果画出来】X11-XServer-Xmind+ wsl + mobxterm在windows11上构建一套本地可视化服务
不需要安装啥x11 、 xming直接mobxterm可以搞定点击右上角的X server打开可视化服务器然后 apt install x11-apps -yxclock 搞定从mobxterm可以看到display的端口X11显示可视化的原理是就是通过X协议,类似于http对linux于windows上进行通信。那么他们通信的ip地址就是这个DISPLAY=localhost:10.0比如一个XClinet要在屏幕 上输出一个圆,X应用程序只负责...
2022-03-27 12:59:08
24189
原创 【windows11+linux+vscode】宇宙第一编辑器之配置远程链接+wsl
安装vscode更多可专注官方下载就可以安装wsl右键左下角开始菜单启动管理员powershellwsl --install之后 wsl --set-default-version 2 就完成了,是不是很简单,受够了虚拟机的卡顿和双系统的来回切换,wsl简直神器安装好之后 直接小娜搜索 wsl 就可以看到linux‘界面’安装vscode远程工具如图,可以统统装上启动wsl文件夹开发点击小电脑图标即可启动,即在本地就可以直接操作linux环境开发了值得一提的是 wsl会默认自
2022-03-26 16:40:58
23362
原创 Paper Reading - Model系列 - LiteHRNet
Abstract更多关注计算机视觉-Paper&Code - 知乎paper codepaperHRNet由微软亚洲研究院和中科大提出,已发表于CVPR2019 王井东 IEEE fellow 目前已经加入百度AIGroup作为CV首席架构师,主要研究领域为姿态估计、分割检测工业界学术界大牛。 回顾上次分享的HRNet,在保持高分辨和高语义信息下虽然得到了很好的效果,但是没有下采样阶段,模型复杂度高,部署困难的问题。对此团队继续推出了轻量化的LiteHRNet总结来说文章主要以
2022-03-26 12:07:14
23989
原创 Paper Reading - 基础系列 - Batch Normalization
Google出品,难怪论文中实验都用到了InceptionVx,支持自家货,总结一下文章BN有点Covariate Shift不同分布的输入值对深度网络学习的影响,因此减少了ICS至关重要(Interval Covariate Shift由于前一层的参数更新,所以这一层的输入(前一层的输出)的分布会发生变化)。BN将数据的分布都归一化到均值为0,方差为1的分布上去。因此每一层的输入(上一层输出经过BN后)分布的稳定性都提高了,故而整体减小了网络的ICS。BN work的根本原因,是因为在网络的训练阶段
2022-03-26 12:05:40
27029
10
原创 【CUDA+Windows11+VisualStudio2019】从0搭建GPU CUDA开发环境
安装VS2019与CUDA Driver参考另一篇文章 【CUDA+OpenCV】Windows 11 Visual Studio 2019 下配置Cmake + OpenCV_子韵如初的博客-CSDN博客注意安装CUDA时候不要选择精简,选择自定义,把所有选项都勾选上关键的是需要引入visual_studio_integration, 且安装时候需要把VisualStudio2019关闭查询本机GPU设备型号开始菜单单击右键 ,设备管理器->显示设备器可以看到为.
2022-03-26 11:38:44
28453
原创 通过MAVEN安装Spark、&& EclipseIDE
Spark Installation with Maven & Eclipse IDE文章目录Spark Installation with Maven & Eclipse IDE安装说明Maven & Eclipse IDE说明参考网站安装过程JDK安装Eclipse IDE安装Maven安装Spark安装新建Maven项目配置Maven依赖(安装Spark框架)`pom.xml`文件说明配置Run指令运行安装说明目前存在多种安装Spark框架的方式。经过实验和比较,在Win
2022-03-25 22:37:12
31006
原创 【Docker】入门与使用,常用命令集合
## Docker- 编写Dockerfile,并使用docker build编译一个docker镜像,能够运行mindspore官方示例/或者mmdetection框架下的训练。进入https://harbor.apulis.cn:8443/ 创建测试project,并推送至新建的project中。 需要了解常用的命令,以及参数的意义 [操作参考链接](docker命令)- 启动容器命令 `docker run --privileged -it -name 启动后的容器名称 需要启动的镜像名/ID
2022-03-25 19:58:09
28250
2
原创 【 机器学习】入门,理论框架以及学习资料
机器学习公开课 吴恩达《Machine Learning》这绝对是机器学习入门的首选课程,没有之一!即便你没有扎实的机器学习所需的扎实的概率论、线性代数等数学基础,也能轻松上手这门机器学习入门课,并体会到机器学习的无穷趣味。课程主页:https://www.coursera.org/learn/machine-learning中文视频:网易云课堂搬运了这门课,并由黄海广等人翻译了中文字幕。中文笔记及作业代码:https://github.com/fengdu78/Coursera-ML-A
2022-03-24 22:39:24
27436
原创 如何从零创建gitee pull-request
如何创建gitee pull-request前置条件仔细阅读contributing文档 https://gitee.com/ascend/modelzoo/blob/master/contrib/CONTRIBUTING.md提交CLA签名验证,https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZhc2NlbmQ=repo需要等待前一个模型pull-request已经合入后在操作下一个流程步骤代码使用pep8规范 https://www.cnblogs.
2022-03-24 22:38:39
25339
原创 【开发】过程中常见的问题和错误总结
Python问题截图解决方案备注相关的.so文件找不到1、检查环境变量是否正确。2、使用查找到相应的so文件后 find / -name "{缺失的so文件}" 。添加到环境变量中 export LD_LIBRARY_PATH={DIRECTORY}libxml2.so.2: cannot open shared object file: No such file or directoryapt-get install libxml2 -y &&
2022-03-24 22:38:09
24303
原创 【强化学习入门】人工智能、深度学习理论框架以及学习资料
强化学习公开课 Reinforcement Learning-David Silver与吴恩达的课程对于机器学习和深度学习初学者的意义相同,David Silver的这门课程绝对是大多数人学习强化学习必选的课程。课程从浅到深,把强化学习的内容娓娓道来,极其详尽。不过由于强化学习本身的难度,听讲这门课还是有一定的门槛,建议还是在大致了解这个领域之后观看该视频学习效果更佳,更容易找到学习的重点。视频地址B站地址(中文字幕):https://www.bilibili.com/video/av4535
2022-03-24 22:37:32
23325
原创 深度学习相关课程,MIT、李沐、吴恩达、
深度学习深度学习视频课程MIT《深度学习导论(6.S191)》课程(2021)李沐《动手学深度学习 v2》 (2021)台大李宏毅系列视频 (2021 - 2018)吴恩达《Deep Learning》Fast.ai《程序员深度学习实战》Stanford《CS231n CNN for Visual Recognition》(2019)书籍神经网络与深度学习 - 复旦邱锡鹏《深度学习》 - Ian Goodfellow视频课程MIT《深度学习导论(6.S191)
2022-03-24 22:36:50
25772
原创 【GIT】github git 常用操作 commit reset rebase 推荐直接使用git desktop
Git 的常规操作文章目录Git 的常规操作常规操作Clone a Repo (在线创建仓库)Create Repo from Local folder (本地创建仓库)Push a Local Repo 上传已经存在的仓库Branch 分支操作Commits 操作git reset - 撤销commitsgit stash - 保存于恢复工作区git rebase - 合并commitsgit submodulesAlias 简化命令高级操作保持 forked repository 和官方仓库保持同
2022-03-24 14:03:21
25898
原创 Tensorflow各种推理格式转换以及代码
Tensorflow 将 ckpt 转成 pb 格式使用 tf.train.saver()保存模型时会产生多个文件,会把计算图的结构和图上参数取值分成了不同的文件存储。这种方法是在TensorFlow中是最常用的保存方式。例如:下面的代码运行后,会在save目录下保存了四个文件:import tensorflow as tfv1 = tf.Variable(tf.random_normal([1, 2]), name="v1")v2 = tf.Variable(tf.random_normal(
2022-03-23 23:21:11
28785
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅