ML&DL
Charles.zhang
朝闻道,夕死可矣。路漫漫其修远兮,吾将上下而求索。
展开
-
Residual Attention Network 翻译
阅读笔记(paper+code):Residual Attention Network for Image Classification代码链接:https://github.com/fwang91/residual-attention-network深度学习中的attention,源自于人脑的注意力机制,当人的大脑接受到外部信息,如视觉信息、听觉信息时,往往不会对全部信息进行处理和理解,而只会将注意力集中在部分显著或者感兴趣的信息上,这样有助于滤除不重要的信息,而提升信息处理的效率。最早将Atte转载 2020-09-23 09:49:09 · 402 阅读 · 0 评论 -
在物体检测中搞定小目标
在计算机视觉中,检测小目标是最有挑战的问题之一。本文给出了一些有效的策略。本文来自公众号:AI公园作者:Jacob Solawetz编译:ronghuaiyang从无人机上看到的小目标为了提高你的模型在小目标上的性能,我们推荐以下技术: 提高图像采集的分辨率 增加模型的输入分辨率 tile你的图像 通过增强生成更多数据 自动学习模型anchors 过滤掉无关的类别 为什么小目标检测很困难?小目标问题困扰着世界各地的...转载 2020-09-15 14:14:31 · 361 阅读 · 0 评论 -
BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm总结
本篇博客总结几种归一化办法,并给出相应计算公式和代码。1、综述1.1 论文链接1、Batch Normalizationhttps://arxiv.org/pdf/1502.03167.pdf2、Layer Normalizaitonhttps://arxiv.org/pdf/1607.06450v1.pdf3、Instance Normalizationhttps://arxiv.org/pdf/1607.08022.pdfhttps://github.com/Dmit转载 2020-09-14 19:27:22 · 446 阅读 · 0 评论 -
CNN全连接层和卷积层的转化
0. 前言自AlexNet网络在ImageNet LSVRC-2012的比赛中,取得了top-5错误率为15.3%的成绩后卷积神经网络CNN在图像深度学习中成为不可缺少的大杀器。以图像分类任务为例在对最后一个卷积层进行池化后一般会再接2~3个全连接层(Full Connected Layer),这是一个高维向低维特征映射的过程,多个全连接层的作用是增加函数非线性,可以理解为提升分类的准确度。这种结构在VGG(2014)系列中仍有使用,但是全连接层的加入会使模型带产生过量参数,之后的网络都在想办法减少和转载 2020-09-14 18:44:15 · 3863 阅读 · 0 评论 -
如何将卷积神经网络中的全连接层变成卷积层
全连接层实际就是卷积核大小为上层特征大小的卷积运算,一个卷积核卷积后的结果为一个节点,就对应全连接层的一个神经元。假设:最后一个卷积层的输出为7×7×512,连接此卷积层的全连接层为1×1×4096(相当于全连接网络有4096个神经元)。相当于一个全链接网络的输入层有7×7×512个输入神经元,下一层有4096个神经元。如果将这个全连接层转化为卷积层:1.共需要4096组滤波器2.每组滤波器含有512个卷积核3.每个卷积核的大小为7×74.则输出为1×1×4096由于每个滤波核的大小和上一.转载 2020-09-14 18:31:49 · 1931 阅读 · 0 评论 -
faster rcnn讲解很细
featuremap上每个滑窗中心对应原图的一个区域(感受野),其中心点替换掉上表中的(7.5,7.5)即可得到9个anchor的坐标。R-CNN:(1)输入测试图像;(2)利用selective search 算法在图像中从上到下提取2000个左右的Region Proposal;(3)将每个Region Proposal缩放(warp)成227*227的大小并输入到CNN,将CNN的fc7层的输出作为特征;(4)将每个Region Proposal提取的CNN特征输入到S...转载 2020-09-14 18:15:16 · 355 阅读 · 0 评论 -
ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks
论文《ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks》的完整翻译,如有翻译不当之处敬请评论指出,蟹蟹!(2019-10-17)作者:Qilong Wang1, Banggu Wu1, Pengfei Zhu1, Peihua Li2, Wangmeng Zuo3, Qinghua Hu1发表:暂未知代码:https://github.com/BangguWu/ECANet摘要通道注意力在改善转载 2020-09-05 12:12:40 · 3378 阅读 · 0 评论 -
大盘点 | 十大即插即用的涨点神器!
大盘点 | 十大即插即用的涨点神器!作者:AmusiDate:2020-08-11来源:CVer微信公众号链接:大盘点 | 十大即插即用的涨点神器!前言最近出现了很多"即插即用"的网络模块,比如用来替换传统的卷积层,可以使你的网络轻松涨点!本文就来盘点一下近期(6.22-至今)较为亮眼的论文,也许对你目前的科研工作会有所帮助,或者有所启发。有意思的是Amusi 统计出正好10篇论文,其实每一篇都可以单独写出文章来分享,但这里汇总成大盘点系列,方便做对比和参考。注:10篇论文PDF均转载 2020-09-04 16:16:58 · 8710 阅读 · 0 评论 -
有人手写实现李航《统计学习方法》书中全部算法
有人手写实现李航《统计学习方法》书中全部算法作者:AmusiDate:2020-05-20来源:CVer微信公众号链接:有人手写实现李航《统计学习方法》书中全部算法前言不管你是学习CV,还是NLP,或者其他方向,应该都多多少少看过或者听过李航教授的《统计学习方法》这本书。Amusi 认为这是一本超级棒的AI入门,再具体一点机器学习入门的书籍。记得第一次拿到手里的时候,很是惊讶:如此"轻薄"。懂的自然懂,跟其他技术书籍相比,这本书的重量就是一股清流。"轻薄"但不简单,内容涵盖了机器学习大转载 2020-09-04 16:06:45 · 1396 阅读 · 1 评论 -
使用Tensorflow Object Detection API进行集装箱识别并对集装箱号进行OCR识别
使用Tensorflow Object Detection API进行集装箱识别并对集装箱号进行OCR识别两年多之前我在“ex公司”的时候,有一个明确的项目需求是集装箱识别并计数,然后通过OCR识别出之前计数的每一个集装箱号,与其余业务系统的数据进行交换,以实现特定的整体需求。当时正好Tensorflow Object Detection API 发布了,就放弃了YOLO或者SSD的选项,考虑用TF实现Demo做POC验证了。作者:AiChinaTech|2020-03-27 20:22两年多之转载 2020-08-25 20:39:39 · 2418 阅读 · 1 评论 -
自然场景OCR检测(YOLOv3+CRNN)
(自然场景OCR检测(YOLOv3+CRNN))(中文+英文模型)前言最近对于自然场景下的OCR比较有兴趣,所以总结了一些目前OCR现状,并且找了一个自然场景OCR的项目练练手。本人新手小白,若出现理解不当的地方,还望指出。简介目前的主流自然场景OCR模型:文字检测+文字识别文字检测:解决的问题是哪里有文字,文字的范围有多大。主要方法:1.CTPN:水平文字检测,四个自由度,类似物体检测(常用成熟基础)。2.目标检测:如YOLO、SSD、Mask-R-CNN。3.Seglink:转载 2020-08-25 20:02:55 · 3417 阅读 · 2 评论 -
Warm-up和Cos设置LR
Warm-up和Cos设置LRimport bisectfrom bisect import bisect_rightimport matplotlib.pyplot as pltimport numpy as npimport mathlr = []iters=[]def _get_warmup_factor_at_iter( method: str, iter: int, warmup_iters: int, warmup_factor: float): """转载 2020-08-22 14:09:13 · 1508 阅读 · 0 评论 -
机器学习如何提高GPU利用率
前言首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄””)╭但是!如果现在还是在进行session.run(…)的话!尤其是苦恼于GPU显存都塞满了利用率却上不去的童鞋,这篇文章或许可以给你打开新世界的大门噢( ̄∇ ̄)如果发现经过一系列改良后训练效率大大提高了,记得回来给小夕发小红包( ̄∇ ̄)不过,这并不是一篇怒贴一堆代码,言(三)简(言)意(两)赅(语)就结束的CSDN文风的文章。。。所以伸手党们也可以X掉了╮( ̄▽ ̄””)╭缘起很早很早之转载 2020-08-20 19:18:24 · 4326 阅读 · 0 评论 -
目标检测的性能评价指标
写在前面:纸上得来终觉浅,绝知此事看源码!看源码是理解最准确的方法,没有之一。一般来说对于应用深度学习方法的网络模型来说,我们希望网络模型速度快,内存小,精度高,即快、小、好。回到目标检测问题,一般的常用评价指标有:map(平均准确度均值,精度评价),速度指标(FPS即每秒处理的图片数量或者处理每张图片所需的时间,当然必须在同一硬件条件下进行比较),对于网络的速度与许多因素有关,比如模型的参数量,激活函数,损失函数下面对这2个评价指标仔细介绍。如有不对的地方,还望告知。1.map(平均准确度均值)转载 2020-08-19 09:27:19 · 3449 阅读 · 0 评论 -
[CV] 通俗理解『卷积』——从傅里叶变换到滤波器
引子因研究兴趣不在图像处理,所以对图像中的『卷积』操作未做深入思考,直到某天,灵光一闪,我突然意识到图像『卷积』应该可以和『信号处理』联系起来更进一步图像卷积的本质,是提取图像不同『频段』的特征然而放眼望去,市面上大谈特谈『卷积』的文章,各种雷同,互相『借鉴』,都是在讲解卷积的不同方式、卷积的参数共享、卷积的具体操作、卷积在图像上的效果,竟鲜有一篇像样的文章,真正触及『卷积』的本质、探索『卷积』和『信号处理』的联系!作为一个EE科班出生、当年『信号系统』『数字信号处理』课程接近满分的转载 2020-08-19 09:12:36 · 860 阅读 · 0 评论 -
Web上的MediaPipe
由MediaPipe团队的Michael Hays和Tyler Mullen发布MediaPipe是用于构建跨平台多模式应用ML管道的框架。我们之前已经演示了如何在移动设备(Android,iOS)和边缘设备(例如Google Coral)上以MediaPipe图形的形式构建和运行ML管道。在这篇文章中,我们很高兴现在MediaPipe图表运行住在Web浏览器中,通过WebAssembly启用并加速XNNPack ML推理库。通过将此预览功能集成到我们基于Web的Visualizer工具中,我们提供了.转载 2020-08-15 17:59:03 · 1429 阅读 · 0 评论 -
这12个最新AI开源项目,你一定要收下
转载自:https://www.jiqizhixin.com/articles/2018-09-07-7,mark自己看这12个最新AI开源项目,你一定要收下#基于TensorFlow的强化学习框架Dopamine 是一款快速实现强化学习算法原型的研究框架,基于TensorFlow 实现,旨在为研究人员提供一种简单易用的实验环境,能够满足用户对小型、便于访问的代码库的需求,用户可以很方便地构建实验去验证自身在研究过程中的想法。项目链接https://g...转载 2020-08-15 16:23:43 · 1697 阅读 · 0 评论 -
YOLOv5代码详解(common.py部分)
目录4. common.py4.1 卷积层4.1.1 深度分离卷积层4.1.1 标准卷积层4.2 标准Bottleneck4.3 BottleneckCSP4.4 SPP4.5 Flatten4.6 Focus4.7 Concat4. common.py该部分是backbone各个模块参数讲解。4.1 卷积层4.1.1 深度分离卷积层深度分离(DepthWise)卷积层,是GCONV的极端情况,分组数量等于输入通道数量,即每个通道作为一.转载 2020-07-26 11:28:17 · 8781 阅读 · 4 评论 -
YOLOv5代码详解(test.py部分)
目录2. test.py2.1 设置超参数2.2 设置任务(验证,测试,学习)2.3 测试函数2.3.1 初始化模型2.3.2 判断设备类型并仅使用一张GPU进行测试2.3.3 获取配置文件路径和文件参数2.3.4 数据获取2.3.5 计算map数据2.3.6 打印结果(图片,速度),保存结果至json,并返回结果2. test.py该部分主要用于运行train.py时,计算每个epoch的mAP。PS,与train.py相似的部分就不再阐述。2.转载 2020-07-26 10:59:28 · 9030 阅读 · 3 评论 -
pytorch分布式数据并行DistributedDataParallel(DDP)
DistributedDataParallel(DDP)在module级别实现数据并行性。它使用torch.distributed包communication collectives来同步梯度,参数和缓冲区。并行性在单个进程内部和跨进程均有用。在一个进程中,DDP将input module 复制到device_ids指定的设备,相应地按batch维度分别扔进模型,并将输出收集到output_device,这与DataParallel相似。Across processes, DDP inserts neces转载 2020-07-26 10:18:52 · 7485 阅读 · 0 评论 -
Pytorch详解BCELoss和BCEWithLogitsLoss
BCELoss在图片多标签分类时,如果3张图片分3类,会输出一个3*3的矩阵。先用Sigmoid给这些值都搞到0~1之间:假设Target是:emmm应该是我上面每次都保留4位小数,算到最后误差越来越大差了0.0001。不过也很厉害啦哈哈哈哈哈!BCEWithLogitsLossBCEWithLogitsLoss就是把Sigmoid-BCELoss合成一步。我们直接用刚刚的input验证一下是不是0.7193:————————————————版权声明:转载 2020-07-26 09:38:29 · 5643 阅读 · 0 评论 -
目标检测算法-YOLO算法纵向对比理解
目标检测算法-YOLO算法纵向对比理解DeepLearning的目标检测任务主要有两大类:一段式,两段式其中两段式主要包括RCNN、FastRCNN、FasterRCNN为代表,一段式主要包括YOLO,SSD等算法由于一段式直接在最后进行分类(判断所属类别)和回归(标记物体的位置框框),所以现在一段式大有发展。YOLO v1论文地址:You Only Look Once: Unified, Real-Time Object DetectionYOLOv1是o...转载 2020-07-10 17:13:15 · 2915 阅读 · 0 评论 -
深度学习中的concatenate使用
1. 在numpy中concatenate使用1.1 numpy.concatenate函数定义:numpy.concatenate((a1, a2, ...), axis=0, out=None)1Parameters:a1, a2, … :sequence of array_like The arrays must have the same shape, except in th...转载 2019-12-04 10:01:13 · 2605 阅读 · 0 评论 -
DL学习笔记-GoogLeNet论文阅读
这次阅读我把全部论文读完了,才来写这个笔记,试试这个方式的效果怎么样。前面的部分作者介绍了他们那时期最近两年的神经网络发展。1、卷积神经网络通常具有标准的结构:堆叠卷积层(可以选择加上对比归一化和最大池化),然后接上一个或者多个全连接层。最近的趋势是增加层数和层的大小,使用dropout来防止过拟合。虽然最大池化会导致精确的空间信息的丢失,但是可以提取到重要的特征,试验表明这个操作很有效。2、NI...原创 2018-06-14 19:40:30 · 359 阅读 · 0 评论 -
tensorflow学习笔记----TensorBoard讲解
TensorBoard简介 TensorBoard是TensorFlow自带的一个强大的可视化工具,也是一个Web应用程序套件。TensorBoard目前支持7种可视化,Scalars,Images,Audio,Graph...转载 2019-07-25 14:26:02 · 346 阅读 · 0 评论 -
tensorboard使用详解
重点:1、tf.namescope()、 tf.summary.FileWriter('logs/',ss.graph)2、参数名、op都可以定义新的名称,如下A、B、C3、启动tensorboard:tensorboard --logdir=C:\Users\vip_g\logs4、用Google浏览器打开生成的http地址一、简单代码import tensorflow ...转载 2019-07-25 14:02:01 · 2804 阅读 · 0 评论 -
darknet源码解读-letterbox_image
letterbox_image对图像调整成输入尺寸(w,h)//将原图进行一定比例的缩放,返回的图片尺寸为(w,h)image letterbox_image(image im, int w, int h){ int new_w = im.w; int new_h = im.h; //在保证图像宽高比不变的情况下,计算放缩后的宽高 if (((float...转载 2019-07-25 13:43:13 · 1158 阅读 · 0 评论 -
如何在tensorflow中对自己修改过后的网络进行finetuning(迁移学习)
tensorflow中加载预训练模型,进行finetuning的两种方法本篇博客主要讲了利用ckpt文件载入预训练模型,进行finetuning的两种方法,第一种是通过导入训练好的graph进行finetuning,该方法在训练的时候不用再复写之前的网络,只需要写自己修改的网络部分即可,该部分参考博客链接如下:https://blog.csdn.net/Alienge/article/detai...转载 2019-07-17 22:18:23 · 1317 阅读 · 0 评论 -
迁移学习技巧以及如何更好的finetune 模型经验总结
本文参考自如下文章https://blog.csdn.net/u014381600/article/details/71511794https://blog.csdn.net/qq_28659831/article/details/78985797仅方便自己学习使用 如有侵权 请联系删除文章参考翻译自cs...转载 2019-07-29 17:13:13 · 781 阅读 · 0 评论 -
DL开源框架Caffe | 模型微调 (finetune)的场景、问题、技巧以及解决方案
前言什么是模型的微调? 使用别人训练好的网络模型进行训练,前提是必须和别人用同一个网络,因为参数是根据网络而来的。当然最后一层是可以修改的,因为我们的数据可能并没有1000类,而只有几类。把最后一层的输出类别和层的名称改一下就可以了。用别人的参数、修改后的网络和自己的数据进行训练,使得参数适应自己的数据,这样一个过程,通常称之为微调(fine tuning).微调时候网络参数是否...转载 2019-07-29 17:05:19 · 337 阅读 · 0 评论 -
浅谈Tensorflow模型的保存与恢复加载加载
近期做了一些反垃圾的工作,除了使用常用的规则匹配过滤等手段,也采用了一些机器学习方法进行分类预测。我们使用TensorFlow进行模型的训练,训练好的模型需要保存,预测阶段我们需要将模型进行加载还原使用,这就涉及TensorFlow模型的保存与恢复加载。总结一下Tensorflow常用的模型保存方式。保存checkpoint模型文件(.ckpt)首先,TensorFlow提供了一个非常...转载 2019-07-17 10:51:55 · 344 阅读 · 1 评论 -
深度学习中为什么要使用多于一个epoch?
什么是epoch?当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一次epoch。然而,当一个epoch对于计算机而言太庞大的时候,就需要把它分成多个小块。为什么要使用多于一个epoch?在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。但请记住,我们使用的是有限的数据集,并且我们使用一个迭代过程即梯度下降来优化学习过程。如...转载 2019-07-17 10:27:54 · 4334 阅读 · 0 评论 -
输入同一张图片,SSD的ckpt模型或pb模型,输出结果前后不一致
1。 问题:输入一张图片,经过ckpt,两次运行结果,六层的predition与location的两次结果有轻微差异;输入一张图片,经过pb,两次运行结果,六层的predition与location的两次结果有轻微差异但比ckpt的差异大;这个问题不知道为什么,微信好友的答复如下:,但是还是没有理解透彻,希望大家留言各抒己见...转载 2019-07-16 11:43:28 · 549 阅读 · 0 评论 -
Resnet-18-训练实验-warm up操作
实验数据:cat-dog 二分类,训练集:19871 验证集:3975实验模型:resnet-18batchsize:128*2 (一个K80吃128张图片)存在的问题: 对训练集 accuracy可达0.99 loss=1e-2 -3,然而验证集 accuracy 0.5,loss 很高,试了多个初始学习率(0.1 — 0.0001)都不行解决上述问题: 采取warm up方法 ...转载 2019-07-25 15:19:30 · 2074 阅读 · 1 评论 -
关于warm_up学习率
关于warm-up:tf的models里面提到warm-upw为5epoch,所以上面计算的2.16epoch相对合理。warmup: Run a 5 epoch warmup to the initial lr.1warm_up核心代码 learning_rate = cfg.learning_rate boundaries = cfg.lr_steps # _...转载 2019-07-25 15:21:03 · 6570 阅读 · 0 评论 -
图像标注工具labelImg安装方法(win10 + Python3.5)
系统环境:win10 64位,Python3.5。1,下载源码https://github.com/tzutalin/labelImg,下载之后,解压。2,安装Python3.53,安装PyQt5进入cmd后,输入:pip install PyQt5如果因为网络问题一直安装不了,就去这个网站https://pypi.python.org/pypi/PyQt5/...原创 2018-10-25 18:07:03 · 873 阅读 · 4 评论 -
深度可分离卷积结构(depthwise separable convolution)计算复杂度分析
深度可分离卷积结构(depthwise separable convolution)计算复杂度分析https://zhuanlan.zhihu.com/p/28186857这个例子说明了什么叫做空间可分离卷积,这种方法并不应用在深度学习中,只是用来帮你理解这种结构。在神经网络中,我们通常会使用深度可分离卷积结构(depthwise separable convolution)。这种...转载 2018-10-12 16:28:52 · 7402 阅读 · 0 评论 -
解决tensorflow中报错NotFoundError (see above for traceback): Key v1_1 not found in checkpoint问题
针对TensorFlow实战框架Chp5,P113面问题在 saver.restore()加载的前面,需要添加 tf.reset_default_graph(),作用是 清除默认图的堆栈,并设置全局图为默认图保存文件# -*- coding: utf-8 -*-"""Created on Sat Jun 30 16:17:26 2018@author: muli"""imp...转载 2019-07-23 15:29:11 · 2244 阅读 · 1 评论 -
TensorFlow中关于saver读取中MovingAverage的一些注意事项
saver中保存滑动平均模型中,当我们直接定义一个滑动平均类的操作后,会自动生成变量列表中所对应的shaddow variables, 具体细节代码如下:#part 1v = tf.Variable(0, dtype=tf.float32, name="v")#创建滑动平均的类,给定初始衰减率0.5ema = tf.train.ExponentialMovingAverage(0.5...转载 2019-07-23 15:08:28 · 204 阅读 · 0 评论 -
深度学习入门-得分函数
前向传播之-得分函数剧透:深度学习必备的两个大知识点分别是前向传播和反向传播啦,这里节课我们会先着手把前方传播的所涉及的所有知识点搞定!我相信这部分对于咱们即便没有什么基础的同学来说也是很容易理解的。得分函数:这个就是咱们这节课最核心的一个问题啦。什么叫得分函数呢?下面这个图就给了我们一个最直接的答案!得分函数的目的:我们要做的就是对于一个给定的输入,比如一张小猫的图片,通过一系列复...转载 2019-08-03 21:36:34 · 4283 阅读 · 0 评论