深度学习
文章平均质量分 62
乐亦亦乐
大道至简 知行合一
展开
-
循环神经网络(RNN、LSTM、GRU)的结构及代码实现
RNN代码实现:# 一般循环神经网络RNNclass ConvRNN(nn.Module): def __init__(self, inp_dim, oup_dim, kernel, dilation): super().__init__() pad_x = int(dilation * (kernel - 1) / 2) self.conv_x = nn.Conv2d(inp_dim, oup_dim, kernel, paddin.原创 2021-10-01 18:30:33 · 4149 阅读 · 1 评论 -
ShuffleNetV2 作为backbone代码实现 【torchsummary 使用】
图Fig.3 (c)、(d)对应的代码block:class ShuffleV2Block(nn.Module): def __init__(self, inp, oup, mid_channels, *, ksize, stride): super(ShuffleV2Block, self).__init__() self.stride = stride assert stride in [1, 2] self.mid_...原创 2021-09-19 10:25:37 · 793 阅读 · 1 评论 -
RCAN - Residual Group 代码实现
RCAB 模块参考https://blog.csdn.net/qq_41251963/article/details/120195167## Residual Group (RG)class ResidualGroup(nn.Module): def __init__(self, conv, n_feat, kernel_size, reduction, act, res_scale, n_resblocks): super(ResidualGroup, sel...原创 2021-09-09 10:34:23 · 953 阅读 · 0 评论 -
超分辨率中RCAB--残差通道注意力块代码实现
## Channel Attention (CA) Layerclass CALayer(nn.Module): def __init__(self, channel, reduction=16): super(CALayer, self).__init__() # global average pooling: feature --> point self.avg_pool = nn.AdaptiveAvgPool2d(1) ...原创 2021-09-09 10:07:06 · 2282 阅读 · 0 评论 -
yolox 【darknet网络】
Darknet53的网络结构图:【图片来源:https://www.jianshu.com/p/ab8392ef3394】network_blocks :https://blog.csdn.net/qq_41251963/article/details/119175908from torch import nnfrom network_blocks import BaseConv,CSPLayer,DWConv,Focus,ResLayer,SPPBottleneckclas..原创 2021-07-28 15:02:37 · 816 阅读 · 0 评论 -
yolox中的一些基本组件【network_blocks】
Sigmoid Weighted Liner Unit(SiLU) f(x)=x⋅σ(x) f′(x)=f(x)+σ(x)(1−f(x))【图片来源:https://blog.csdn.net/GrayOnDream/article/details/102955297】class SiLU(nn.Module): """ e...原创 2021-07-28 11:48:59 · 1964 阅读 · 0 评论 -
Pose Estimation 入门理解
姿态估计(Pose Estimation)也叫人体关键点检测。2D姿态估计——从RGB图像估计每个关节的2D姿势(x,y)坐标3D姿态估计——从RGB图像估计3D姿势(x,y,z)坐标。人机交互人体姿态检测方面面临的挑战:一方面,关键点检测不仅存在背景干扰,还会由于背景的干扰或多个人体的相互遮挡使得关键部位缺失,给人体的关键点部位连接带来困难。 另一方面,人体不同关键点检测难易程度不同,对于较为灵活的关键点,如手臂、脚裸,手指等检测尤为困难。 针对原创 2021-04-19 10:06:54 · 4616 阅读 · 0 评论 -
姿态估计各种方法对比结果
AlphaPoseGithub地址:https://github.com/MVIG-SJTU/AlphaPose官方网站:https://www.mvig.org/research/alphapose.html论文地址:https://arxiv.org/pdf/1612.00137.pdf(2018年论文)简介:AlphaPose是一种非常精确的实时多人位姿估计系统。它是第一个在COCO dataset上实现70+ mAP (72.3 mAP)和在MPII dataset上实现80+ .原创 2021-02-25 08:58:43 · 11257 阅读 · 5 评论 -
记录有关步态识别的一些内容
一、步态识别优点及应用生活中我们是否经常会遇到这样的场景:往往前方走来一个人,离我们还有一定的距离,但是我们却能一眼就认出这个人是我们熟悉的某个人,这是为什么呢?因为每个人的走路姿势都是独一无二的,因为太熟悉,尽管距离我们还是很远,却能够根据他的步态一眼认出他。 一、步态识别的优点:1、采集装置的成本比面像识别低。步态识别采集的摄像机用一般的即可,因而采集图像成本比面像识别的低。2、采集的距离比面像识别远,步态识别来集的距离要比面像识别的距离远, 50米以内都可以识别,只要能看清走路的.原创 2021-02-20 11:12:51 · 4794 阅读 · 3 评论 -
使用飞桨模型生成情话情诗
飞桨官网地址:https://www.paddlepaddle.org.cn/hubdetail?name=ernie_gen_lover_words&en_category=TextGenerationERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目原创 2021-02-17 13:42:03 · 704 阅读 · 1 评论 -
卷积神经网络中十大拍案叫绝的操作
转载于:作者:Justin ho;https://zhuanlan.zhihu.com/p/28749411从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中探讨日后的CNN变革方向。卷积只能在同一组进行吗?-- Group convolutionGroup convolution 分组卷积,最早在AlexNet中出现,由于当时的硬件资源有..转载 2021-02-11 08:52:01 · 546 阅读 · 0 评论 -
paddlehub 安装 及 使用 预训练模型 检测人体骨骼关键点
飞桨官方网站:https://www.paddlepaddle.org.cn/使用过程记录:用conda创建虚拟环境:conda create -n paddle python=3.6 激活:conda activate paddlepaddle安装: 官网:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/2.0/install/pip/windows-pip...原创 2021-02-04 22:38:57 · 1758 阅读 · 1 评论 -
Inception改进前后 参数计算量对比
Inception 采用了并行结构。如图每个Inception块使用多个大小不同的卷积核,可以提取到不同类型的特征。每个卷积核的感受野不同,因此可以获得多尺度的特征,最后将特征拼接起来。引入多个尺寸的卷积核会引入大量的参数,耗费大量的计算资源,如图(a)所示。为了降低成本,可以采用的改进方式是在3x3卷积和5x5卷积之前引入1x1卷积,以降低输入的通道数。(1X1卷积可以增加或减少输入特征图的通道数!!)参数计算对比:(a):参数=1x1x192x64+3x3x192x128+5x5x192原创 2020-10-28 19:32:19 · 1482 阅读 · 0 评论 -
深度学习100题(2)
来源:BAT面试1000题https://zhuanlan.zhihu.com/c_14016619931、梯度爆炸会引发什么问题?解析:在深度多层感知机网络中,梯度爆炸会引起网络不稳定,最好的结果是无法从训练数据中学习,而最坏的结果是出现无法再更新的 NaN 权重值。梯度爆炸导致学习过程不稳定。—《深度学习》,2016。在循环神经网络中,梯度爆炸会导致网络不稳定,无法利用训练数据学习,最好的结果是网络无法学习长的输入序列数据。32、如何确定是否出现梯度爆炸?解析:训练过程中转载 2020-09-29 21:47:41 · 247506 阅读 · 0 评论 -
深度学习100题(1)
来源:BAT面试1000题https://zhuanlan.zhihu.com/c_1401661991、梯度下降算法的正确步骤是什么?a.计算预测值和真实值之间的误差b.重复迭代,直至得到网络权重的最佳值c.把输入传入网络,得到输出值d.用随机值初始化权重和偏差e.对每一个产生误差的神经元,调整相应的(权重)值以减小误差A.abcde B.edcba C.cbaed D.dcaeb解析:正确答案D,考查知识点-深度学习。2、已知:- 大脑是有很多个叫做神经元的.转载 2020-09-29 20:55:39 · 17239 阅读 · 0 评论 -
增强模型对于小物体的检测效果措施
(1)在模型设计方面,采用特征金字塔、沙漏结构等网络子结构,来增强网络对多尺度尤其是小尺度特征的感知和处理能力;尽可能提升感受野,使得网络能够更多地利用上下文信息来增强检测效果;同时减少网络总的下采样比例,使最后用于检测的特征分辨率更高。(2)在训练方面,可以提高小物体样本在总样本中的比例;也可以利用数据增强手段,将图像缩小以生成小物体样本。(3)在计算量允许的范围内,可以尝试使用更大的输入图像尺寸。...原创 2020-09-22 11:44:51 · 556 阅读 · 0 评论 -
R-CNN 到 Faster R-CNN的发展过程
R-CNNR-CNN(Regional CNN)是第一个将卷积神经网络用于目标检测的深度学习模型。主要思路:首先使用无监督的选择性搜索(Selective Search,SS)方法将输入图像中具有相似颜色直方图特征的区域进行递归合并,产生约2000个候选区域。然后从输入图像中截取这些候选区域对应的图像,将其裁剪缩放至合适的尺寸,并相继送入一个CNN特征提取网络进行高层次的特征提取,提取出的特征再被送入一个SVM分类器进行物体分类,以及一个线性回归器进行边界框位置和大小的修正。最后对检测结果进行非极大原创 2020-09-22 10:48:55 · 429 阅读 · 0 评论 -
物体检测中的单步模型(one-stage)和两步模型(two-stage)
物体检测模型大致可以分为单步(one-stage)和两步(two-stage)模型两大类。单步模型:指没有独立地、显示地提取候选区域(region proposal),直接由输入图像得到其中存在的物体的类别和位置信息的模型。(在计算效率上有优势)典型的单步模型有:OverFeat、SSD(Single Shot multibox-Detector )、YOLO(You Only Look Once)等两步模型:有独立的,显示的候选区域提取过程,即先在输入图像上筛选出一些可能存在物体的..原创 2020-09-22 09:17:32 · 2866 阅读 · 0 评论 -
批归一化(Batch Normalization,BN)
深度神经网络,其在训练过程中,每一层的参数都会随之更新。以第i层为例,其输入数据与之前所有层(第1层到第i-1层)的网络参数取值都有很大的关系;在训练过程中,如果之前层参数被更新后,第i层的输入数据的分布必然也跟着发生变化,此即为内部协变量偏移。网络越深,这种现象越明显。内部协变量偏移会给深度神经网络的训练过程带来诸多问题:(1)网络每一层需要不断适应输入数据的分布的变化,这会影响学习效率,并使学习过程变得不稳定。(2)网络前几层参数的更新,很可能使得后几层的输入数据变得过大或者过小,从而掉进激原创 2020-09-17 21:56:09 · 3655 阅读 · 0 评论 -
瓶颈结构和沙漏结构
《百面深度学习》读书笔记瓶颈结构瓶颈结构能够降低大卷积层的计算量,即在计算比较大的卷积层之前,先用一个1x1卷积来压缩大卷积层输入特征图的通道数目,以减少计算量。在大卷积完成计算之后,根据实际需,有时候会再次使用一个1x1 卷积来将大卷积层输出特征图的通道数目复原。结构一般是:小通道数的1x1卷积层+一个较大的卷积层+大通道数的1x1卷积层(可选)瓶颈结构可以增加网络层数,所以特征提取能力可能会有相应的提升。该结构基本上可以用于所有的卷积神经网络中。沙漏结构沙漏结构一般包..原创 2020-09-17 16:37:18 · 4215 阅读 · 0 评论 -
卷积神经网络近年来在结构设计上的主要发展和变迁(AlexNet——>ResNet)
AlexNet(1)采用修正线性单元(ReLU)作为激活函数(替代了之前常用的Sigmoid函数),缓解了深层网络训练时的梯度消失问题。(2)引入了局部响应归一化(Local Response Normalization,LRN)模块。(3)应用了Dropout和数据扩充(data augmentation)技术来提升训练结果。(4)用分组卷积来突破当时GPU的显存瓶颈。分组卷积:其实就是将输入通道和输出通道都划分为同样的组数,然后仅让处于相同组号的输入通道和输出通道相互进行“全连.原创 2020-09-17 16:01:57 · 1057 阅读 · 0 评论 -
IOU交并比代码实现
来源《深度学习与图像识别原理与实践》def bboxIOU(bboxA,bboxB): #(x,y,w,h) A_xmin=bboxA[0] A_ymin=bboxA[1] A_xmax=bboxA[2] A_ymax=bboxA[3] #求宽高 A_width=A_xmax-A_xmin A_height=A_ymax-A_ymin B_xmin = bboxB[0] B_ymin = bboxB[1] B_.原创 2020-09-12 14:25:28 · 442 阅读 · 0 评论