深度学习
文章平均质量分 58
微风❤水墨
https://github.com/Li-Lai
展开
-
20210331:人脸识别-静默活体
先搜集一波相关资料,慢慢消化1:比较好的活体识别综述https://zhuanlan.zhihu.com/p/434805392:比较全的活体识别论文研读https://blog.csdn.net/qq_39567427/category_10385411.html3:CVPR 2019 ChaLearn Face Anti-spoofing TOP3方案https://zhuanlan.zhihu.com/p/83054065第一名方案:https://zhuanlan.zhi原创 2021-03-31 19:53:29 · 263 阅读 · 0 评论 -
20211001:Trick篇-MixConv
论文:MixConv: Mixed Depthwise Convolutional Kernels论文: https://arxiv.org/abs/1907.09595代码:https://github.com/linksense/MixNet-PyTorch[非官方]代码:https://github.com/leaderj1001/Mixed-Depthwise-Convolutional-Kernels[非官方]Trick:谷歌出品,轻量化网络,值得学习借鉴要点记录:...原创 2021-09-30 16:35:45 · 319 阅读 · 0 评论 -
论文速读:Squeeze Time 视频分类
该模块包含两个互补的分支,其中一个分支负责时间重要性的学习,而另一个具有时间位置恢复能力的分支旨在增强跨时间的对象建模能力。这些方法都将时间轴视为视频序列中的一个独立维度,需要大量的计算和内存资源,从而限制了在移动设备上的应用。经过以上拆解,Squeeze Time网络结构就非常的清洗明了,作者提到的CTL更多的是一种论文名词的包装,全都是基本算子,以及attention机制的组合搭配。2:所提出的网络包含四个主要阶段,每个阶段由一系列精心设计的CTL模块堆叠而成,旨在挖掘和恢复隐藏的时间表示。原创 2024-05-20 14:32:49 · 530 阅读 · 0 评论 -
20221108:onnx2caffe错误处理1-Mul维度不匹配问题
这是按num进行拼接,比如上面,输入图像均为24×24×3,用于分类的有150张图片,用于boundingbox回归的有50张,用于关键点回归的也有50张,则最后拼接的结果就是 (150+50+50)×3×24×24。输入的data_all维度为 250×3×24×24,拆分后的3个输出的维度依次为 150×3×24×24,50×3×24×24, 50×3×24×24。concat就是合并的操作,那么slice就是拆分的操作,需要指定的参数是:拆分的通道axis、拆分的位置slice_point。原创 2022-11-08 20:12:39 · 426 阅读 · 0 评论 -
20220117:技巧记录-在pytorch中应用albumentations
官网:Albumentations: fast and flexible image augmentationshttps://albumentations.ai/在线可视化调参:不用自己慢慢写代码确定参数了Streamlithttps://albumentations-demo.herokuapp.com/示例代码:import osimport cv2import torchimport numpy as npfrom torch.utils.data import Datase原创 2022-01-21 10:24:15 · 1346 阅读 · 0 评论 -
20220117:技巧记录-pytorch保存网络结构
需求:之前在网络剪枝时,因为网络结构变动,一时不知道如何保存剪枝后的网络结构,索性就在save的时候直接导出onnx模型了。这样就有一个问题,如果训练结束后,发现不够理想,想对保存的模型文件继续剪枝或者其他调优就不好操作了。处理:1:How to save model architecture in PyTorch? - Stack Overflow2:https://medium.com/udacity-pytorch-challengers/saving-loading-your-mod原创 2022-01-17 14:37:41 · 1147 阅读 · 0 评论 -
20211218:口罩数据汇总
1:医用口罩图像数据集地址:medical masks dataset images tfrecords | Kaggle数量:一千多张质量:一般2:Real Word Masked Face Dataset(RMFD)地址:https://github.com/X-zhangyang/Real-World-Masked-Face-Dataset数量:真含525人的5千张口罩人脸,9万正常人脸。说明:包含3部分,1-未整理原始数据,2-清洗后识别数据,3-贴合生成口罩数.原创 2021-12-18 10:28:20 · 3991 阅读 · 2 评论 -
20211013:学习篇-einops
最近在看vit_pytorch代码,看到里面有很多地方用到einops来对tensor操作,整理记录一下.官方:https://github.com/arogozhnikov/einops展示:文档: 1:最好的入门就是官方文档https://github.com/arogozhnikov/einops/blob/master/docs/1-einops-basics.ipynb2:知乎的示例https://zhuanlan.zhihu.com/p/372692913..原创 2021-10-13 09:19:58 · 215 阅读 · 0 评论 -
20211009:学习篇-Transformer
题目:The Illustrated Transformer链接:https://jalammar.github.io/illustrated-transformer/说明:看过最好的入门介绍【图文并茂】,国内大部分都是摘抄自该blog.----------------------------------------------------------------------------------------------------------------...原创 2021-10-09 16:33:44 · 105 阅读 · 0 评论 -
20210715:pytorch DataLoader 自定义 sampler
需求:实现batch内正负1:1采样比例,验证这种采样会不会影响模型的最终精度探索:搜索良久,发现没有比较直接的实现,需要自己重写一下DataLoader中的sampler1:确定一下DataLoader的定义2:确认一下DataLoader, Sampler, Dataset三者的关系链接:https://zhuanlan.zhihu.com/p/76893455Sampler提供indicies...原创 2021-07-16 09:42:28 · 2204 阅读 · 0 评论 -
20210428:conv2d中group参数在torch和onnx异同
1:首先了解一下conv2d中group参数是如何工作的,如上图group = 1时,卷积核的形状:cout*cin*k*kgroup = g时,卷积核的形状:cout*cin/g*k*k2:理解1中的内容,就可以继续了随意定义一个pytorch中conv2dnn.Conv2d(16, 16,3, 2, 1, groups=16, bias=False)那么转换成onnx是啥样子的呢?w = cout*cin/g*k*k = 16*16/16*3*3= 16*1*3*3...原创 2021-04-28 16:42:12 · 711 阅读 · 0 评论 -
20210401:Prevasive Label Errors in Test Sets Destablize Machine Learning Benchmarks
论文地址:https://arxiv.org/pdf/2103.14749.pdf项目地址:https://github.com/cgnorthcutt/cleanlab论文没有细读,只关注论文作者的有趣发现:ResNet-18 这类比较简单的模型错误率要低于 ResNet-50 这种更为复杂的模型,这取决于不相关数据(噪声)的普遍性。因此,作者建议,如果你的数据集标签错误率高达 10%,你可以考虑使用较为简单的模型。研究者发现,在移除或修正这些错误之后,基准中的模型相对排名并...原创 2021-04-01 09:12:40 · 245 阅读 · 0 评论 -
模型剪枝:Learning Efficient Convolutional Networks through Network Slimming
论文:https://arxiv.org/abs/1708.06519代码:https://github.com/liuzhuang13/slimming简介由于深度学习模型大小以及计算资源的限制,导致模型部署时受到了很大阻碍,为了解决这个问题,就形成了一个新的领域:模型压缩。常见的方法有:量化、剪枝、蒸馏等。本文便是“剪枝”当中一篇非常经典且有效果的一篇文章。相关工作图片来自:https://www.codenong.com/cs106948573/图片来自:https:原创 2021-02-25 17:45:40 · 271 阅读 · 0 评论 -
深度学习:SoftPool : Refining activation downsampling with SoftPool
AbstractCNN使用Pooling操作来降低activation map的大小。这一操作对于取得 局部空间不变性和后续卷积的感受野至关重要。所以,pooling应当尽量减少信息的丢失,同时计算高效。作者提出了softpool,在替换原有pooling操作,涨点明显,在分类任务上可提升 1-2 个点。Introductionsoftpool:思想简洁明了,具体操作如下图,总计分3步第一步:对kernel中的每个pixel计算softmax作为其权重...原创 2021-02-06 16:24:48 · 1039 阅读 · 0 评论 -
docker:修改容器的挂载目录
挂载了一块新硬盘,所以增加一下自己容器里挂载的路径。参考1 参考2选择了最简单的方案:1:记录docker的Container ID的:docker ps -a2:记录完整的容器的hash值ls /var/lib/docker/containers3:停止docker服务systemctl stop docker.service4:修改容器挂载目录:container-ID就是刚才完整的hash值vim /var/lib/docker/contai...原创 2021-01-29 18:16:51 · 1092 阅读 · 2 评论 -
深度学习:RepVGG-caffe
pytorch版本:https://github.com/DingXiaoH/RepVGGcaffe版本:https://github.com/imistyrain/RepVGG-caffe我提供模型转换的caffe版本:https://github.com/Li-Lai/RepVGG-caffecaffe版本里面没有train-model到deploy-model的转换代码。参考pytorch代码,撸了一下caffe版本的转换代码,代码写的粗糙,已上传到github。...原创 2021-01-26 18:33:54 · 431 阅读 · 9 评论 -
Pytorch:问题记录
1:Pytorch和Numpy中默认数据类型的区别来源:https://blog.csdn.net/yyb19951015/article/details/84781434问题:RuntimeError: Expected object of type torch.cuda.DoubleTensor but found type torch.cuda.FloatTensor for argument #3 'other'这种错误是由于数据类型不匹配造成的。这种不匹配可能来自Pytor.原创 2020-10-14 09:31:36 · 2504 阅读 · 1 评论 -
protobuf深坑-版本冲突-彻底解决
由于安装了anaconda ,caffe,后面又安装了pytorch,mmdetection,tensorboardX,导致环境中protoc和protobuf相当混乱后面在编译caffe的时候,已经编辑不过去了。1:一般protobuf安装有3种方式apt-get install libprotobuf-dev protobuf-compiler[安装在系统]pip i...原创 2020-05-08 15:24:57 · 16878 阅读 · 0 评论 -
00-classification.ipynb
Classification: Instant Recognition with CaffeIn this example we'll classify an image with the bundled CaffeNet model (which is based on the network architecture of Krizhevsky et al. for ImageNet).转载 2017-01-06 19:40:19 · 1817 阅读 · 0 评论 -
深度学习:查看修改caffemodel中的数据
参考文章:https://blog.csdn.net/jiongnima/article/details/72904526https://stackoverflow.com/questions/37159655/set-caffe-net-parameters-via-string/38845573 读取bool ReadProtoFromBinaryFile(const ...原创 2019-01-25 09:33:41 · 511 阅读 · 0 评论 -
深度学习:caffe使用string变量进行加载
参考资料:https://stackoverflow.com/questions/37159655/set-caffe-net-parameters-via-string/38845573以前的操作方式:shared_ptr<Net<float> > net_;string modelString;string trainedString;ne...原创 2019-01-25 09:58:03 · 424 阅读 · 0 评论 -
模型优化:BatchNorm合并到卷积中
转自:https://blog.csdn.net/wfei101/article/details/786355571:BN合并的必要性 BN层即batch-norm层,一般是深度学习中用于加速训练速度和一种方法,一般放置在卷积层(conv层)或者全连接层之后,将数据归一化并加速了训练拟合速度。但是BN层虽然在深度学习模型训练时起到了一定的积极作用,但是在预测时因为凭空多了一些层,影响了...转载 2019-02-26 09:29:24 · 1143 阅读 · 0 评论 -
模型压缩:Deep Compression/Acceleration(汇总)
原文链接:https://blog.csdn.net/hw5226349/article/details/84888416本文系转载,感谢原文博主的分享!结构`structure`[BMVC2018] IGCV3: Interleaved Low-Rank Group Convolutions for Efficient Deep Neural Networks[CVPR201...转载 2019-03-05 14:38:42 · 910 阅读 · 0 评论 -
深度学习:ResNet
本文系转载,感谢原文作者的分享。【深度学习】入门理解ResNet和他的小姨子们(一)—ResNethttp://blog.csdn.net/shwan_ma/article/details/78163921【深度学习】入门理解ResNet和他的小姨子们(二)—DenseNethttp://blog.csdn.net/shwan_ma/article/details/78165966【深度学...转载 2019-03-05 14:53:49 · 284 阅读 · 0 评论 -
深度学习:结构虽简单,但性能强悍——3个小型卷积神经网络简介
原文链接:https://yq.aliyun.com/articles/592935?utm_content=m_49748人工智能、深度学习太火了,火到哪一个领域都有讨论的声音。稍微对深度学习有所了解的人们,尤其是对于计算机视觉领域有所涉猎的人们,当一听到深度学习、卷积神经网络时,脑海里不由得自动脑补这样一幅画面——一台满和负载嗡嗡响的GPU服务器、一台满屏代码不断跳跃的显示屏以及坐在...转载 2019-03-05 16:14:56 · 703 阅读 · 0 评论 -
深度学习:caffe添加python层以及多GPU训练
以前用过,又忘记了,今天再备忘一下。以数据层为例,说明如何添加自己的python层。1:trainval.protxtname: "mytest"layer { name: "data" type: "Python" top: "data" top: "label" python_param { module:'my_image_data' laye...原创 2019-03-06 15:15:29 · 695 阅读 · 0 评论 -
图像分割:汇总
本文系转载,版权归原作者所有。原文链接:http://www.aiuai.cn/aifarm62.html1. Semantic SegmentationFickleNet: Weakly and Semi-supervised Semantic Image Segmentation using Stochastic Inference - CVPR2019<Paper> ...转载 2019-03-07 10:02:05 · 1337 阅读 · 0 评论 -
图像分割:GCN: Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network
文章日期:2017年GCN优点1:kernel size和 feature map相同[相近],感受野比较大,更加有利于分类;2:使用非对称卷积实现,可以降低运算量,同时不会降低特征的表达;3:对比实验表明,GCN比传统卷积、小卷积核堆叠,效果都要好;4:易于嵌入当前的网络结构中。个人看法:GCN中非对称卷积在分割中还是蛮有用的,ENet,LEDNet都有大量嵌套使...原创 2019-05-22 10:17:28 · 1554 阅读 · 0 评论 -
目标检测:Region Proposal by Guided Anchoring (GA-RPN)
吐槽一下,WPS太。。。。导出为图片还有水印。。。无水印下载地址:https://download.csdn.net/download/lilai619/11185265anchor:(1)Dense-->sparse(2)fix --> deformableRecall有9.1的提升,同时能去掉很多背景误检,值得学习的一篇文章。...原创 2019-05-17 17:00:33 · 1592 阅读 · 0 评论 -
打印调试:print vs logging
在调试DeRPN的时候,训练一段时间就会挂掉。想看看是哪张图引起的崩溃,就想在取minibatch的时候,输出训练的图片名。方案1:使用printprint "Processing.... ", roidb[i]['image']方案2:使用logging库logging.warning(roidb[i]['image'])方案1的缺点是:输出和GPU训练输出对不上,时常...原创 2019-05-27 10:37:39 · 345 阅读 · 0 评论 -
车道线检测:汇总
我对这个方向不熟,只是感兴趣。原作者持续收集了2017~2019年的相关文章和代码:https://github.com/amusi/awesome-lane-detection图片来自:http://www.360doc.com/content/18/1227/13/43859374_804814347.shtml...原创 2019-07-30 09:16:56 · 769 阅读 · 0 评论 -
查漏补缺:卷积
Conv + BN + Relu + Pool 操作可视化:参考:https://blog.csdn.net/tkkzc3E6s4Ou4/article/details/78681284FLOPS:参考:https://www.jiqizhixin.com/articles/2019-09-15-6存储顺序和行优先: NCHW NHWC...原创 2019-09-17 14:23:54 · 341 阅读 · 0 评论 -
深度学习:caffe模型加密
最近工作中需要对caffe的prototxt和model文件进行加密操作。翻看github,浏览到了一份不错的code。进过调试,主体代码是没有问题。1:自己需要的改动是使用二进制方式读取model。2:还需要加入一下自己的明文,防止他人使用相同代码进行解密。 fprototxt.open(prototxtFile); fmodel.open(caffemodelFile);...原创 2019-01-11 09:49:18 · 3196 阅读 · 3 评论 -
图像分割-手把手系列1:评价指标
目标检测与语义分割交流群:1群:3713154622群:935621769原文连接:https://blog.csdn.net/majinlei121/article/details/78965435度量标准(准确度)(pixel accuracy, mean accuracy, mean IU, frequency weighted IU)原文讲解的非常好,转载过来备份...原创 2018-04-24 15:18:08 · 7066 阅读 · 18 评论 -
目标检测:YOLOv3: 训练自己的数据
------------------------------ 本文仅供学习交流,如有错误,望交流指教 ------------------------------windows 版本:请参考:https://github.com/AlexeyAB/darknetlinux 版本:请参考本文与https://pjreddie.com/darknet/...原创 2018-03-26 10:59:02 · 188617 阅读 · 396 评论 -
caffe的python接口学习(1):生成配置文件
原文链接:http://www.cnblogs.com/denny402/p/5679037.htmlcaffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现。caffe提供matlab接口和python接口,这两种语言就非常简单,而且非常容易进行可视化,使得学习更加快速,理解更加深入。半年前,我在学习CAFFE的时候,为了加深理解,因此写下了随笔,有了一系列的c转载 2017-01-07 11:03:11 · 640 阅读 · 0 评论 -
caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
原文链接:http://www.cnblogs.com/denny402/p/5685909.html经过前面两篇博文的学习,我们已经训练好了一个caffemodel模型,并生成了一个deploy.prototxt文件,现在我们就利用这两个文件来对一个新的图片进行分类预测。我们从mnist数据集的test集中随便找一张图片,用来进行实验。#coding=utf-转载 2017-01-07 11:15:03 · 834 阅读 · 0 评论 -
caffe的python接口学习(5):生成deploy文件
原文链接:http://www.cnblogs.com/denny402/p/5685818.html如果要把训练好的模型拿来测试新的图片,那必须得要一个deploy.prototxt文件,这个文件实际上和test.prototxt文件差不多,只是头尾不相同而也。deploy文件没有第一层数据输入层,也没有最后的Accuracy层,但最后多了一个Softmax概率层。这里我们采用代码的转载 2017-01-07 11:13:22 · 740 阅读 · 0 评论 -
caffe的python接口学习(4):mnist实例---手写数字识别
原文链接:http://www.cnblogs.com/denny402/p/5684431.html深度学习的第一个实例一般都是mnist,只要这个例子完全弄懂了,其它的就是举一反三的事了。由于篇幅原因,本文不具体介绍配置文件里面每个参数的具体函义,如果想弄明白的,请参看我以前的博文:数据层及参数视觉层及参数solver配置文件及参数一、数据准备官网提转载 2017-01-07 11:12:05 · 776 阅读 · 0 评论 -
caffe的python接口学习(3):训练模型(training)
原文链接:http://www.cnblogs.com/denny402/p/5679204.html如果不进行可视化,只想得到一个最终的训练model, 那么代码非常简单,如下 :import caffecaffe.set_device(0)caffe.set_mode_gpu()solver = caffe.SGDSolver('/home/xxx/data/so转载 2017-01-07 11:09:21 · 1126 阅读 · 0 评论