![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 78
-牧野-
这个作者很懒,什么都没留下…
展开
-
Transformer
关键词Dot Product(向量点乘)向量的点乘是对这两个向量对应位一一相乘之后再求和的操作,点乘的结果是一个标量。点乘的几何意义是可以用来表征或计算两个向量之间的夹角:从而有:根据以上公式可以根据向量点乘结果推知两个向量之间的相互关系,具体的:> 0 :两向量方向基本相同,夹角范围[0°,90°],正相关;< 0: 两向量方向基本相反,夹角范围[90°,180°],负相关;= 0 :两向量正交,夹角90°,完全不相关;Attention注意力...原创 2022-03-07 15:30:22 · 3181 阅读 · 1 评论 -
CNN中卷积层的计算细节
原文链接: https://zhuanlan.zhihu.com/p/29119239卷积层尺寸的计算原理输入矩阵格式:四个维度,依次为:样本数、图像高度、图像宽度、图像通道数输出矩阵格式:与输出矩阵的维度顺序和含义相同,但是后三个维度(图像高度、图像宽度、图像通道数)的尺寸发生变化。权重矩阵(卷积核)格式:同样是四个维度,但维度的含义与上面两者都不同,为:卷积核高度、卷积核宽度、输入通道数、输出...转载 2018-03-22 13:02:07 · 45523 阅读 · 10 评论 -
如何开启深度学习之旅?这三大类125篇论文为你导航(附资源下载)
原文链接: https://www.jiqizhixin.com/articles/2017-03-06-2如果你现在还是个深度学习的新手,那么你问的第一个问题可能是「我应该从哪篇文章开始读呢?」在 Github 上,songrotek 准备了一套深度学习阅读清单,而且这份清单在随时更新。至于文中提到的 PDF,读者们可点击阅读原文下载机器之心打包的论文,或点开下面的项目地址下载自己喜欢的学习材料...转载 2018-03-22 13:26:32 · 738 阅读 · 0 评论 -
ubuntu16.04安装Nvidia显卡驱动、CUDA8.0和cudNN V6
Nvidia显卡驱动安装在ubuntu搜索框输入 软件更新,打开 "软件和更新" 对话框,在 附加驱动里选择系统检测到的Nvidia驱动,应用更改,重启系统:安装完成之后查看GPU驱动版本以及相关信息:nvidia-smi或者使用另一个指令也可以查看GPU驱动版本:cat /proc/driver/nvidia/versionCUDA 8.0 安装1. 检查GPU是否可以装CUDAlspci | ...原创 2018-03-21 06:00:39 · 5154 阅读 · 1 评论 -
交叉熵损失函数和均方误差损失函数
交叉熵 分类问题中,预测结果是(或可以转化成)输入样本属于n个不同分类的对应概率。比如对于一个4分类问题,期望输出应该为 g0=[0,1,0,0] ,实际输出为 g1=[0.2,0.4,0.4,0] ,计算g1与g0之间的差异所使用的方法,就是损失函数,分类问题中常用损失函数是交叉熵。交叉熵(cross entropy)描述的是两个概率分布之间的距离,距离越小表示这两个概率越相近,越大...原创 2018-04-19 20:31:18 · 14188 阅读 · 2 评论 -
RCNN、SPP-net、Fast-RCNN和Faster-RCNN
RCNNRCNN (Regions with CNN features) 的核心思想是把图像划分成N(2000)个独立的区域,分别提取每个区域的CNN特征,然后把这些特征使用SVM等分类器进行结果预测,把目标检测任务转换成了分类任务。RCNN由Ross Girshick在2013年提出。RCNN算法的4个步骤:1. 候选区域选择选择候选区域就是进行区域提名(Region Proposal)操作,...原创 2018-05-02 22:34:17 · 829 阅读 · 0 评论 -
Docker及常用操作
镜像、容器和仓库Docker镜像: 镜像是一个只读的模板,可以用来创建Docker容器。可以直接创建一个镜像,或者是更新已有镜像,或者复制他人的镜像直接使用。Docker容器: 容器是镜像的实例,用来执行各种应用,可以同时启动多个容器,相互之间是隔离的。Docker仓库: 仓库用来集中存放镜像文件。仓库可以分为公开仓库和私有仓库,Docker Hub是最大的公开仓库,用户可以在本地网络创建一个私有...原创 2018-03-01 22:03:09 · 1214 阅读 · 0 评论 -
文字检测与识别资源
原文链接: http://blog.csdn.net/PeaceInMind/article/details/51387367本文写成时主要参考了[1,2], 后面加了一些自己收集的,不过大家都在更新,所以区别不是很大~综述[2015-PAMI-Overview]Text Detection and Recognition in Imagery: A Survey[paper] [2014-Fr...转载 2018-03-15 21:21:11 · 2064 阅读 · 1 评论 -
VGGNet网络结构
深度神经网络一般由卷积部分和全连接部分构成。卷积部分一般包含卷积(可以有多个不同尺寸的核级联组成)、池化、Dropout等,其中Dropout层必须放在池化之后。全连接部分一般最多包含2到3个全连接,最后通过Softmax得到分类结果,由于全连接层参数量大,现在倾向于尽可能的少用或者不用全连接层。神经网络的发展趋势是考虑使用更小的过滤器,如1*1,3*3等;网络的深度更深(2012年AlenNet原创 2018-02-05 19:32:37 · 78048 阅读 · 5 评论 -
ResNet网络结构
MSRA(微软亚洲研究院)何凯明团队的深度残差网络(Deep Residual Network)在2015年的ImageNet上取得冠军,该网络简称为ResNet(由算法Residual命名),层数达到了152层,top-5错误率降到了3.57,而2014年冠军GoogLeNet的错误率是6.7。(何凯明博士,2007年清华大学毕业之后开始在微软亚洲研究院(MSRA)实习,2011年香港中文大学博原创 2018-02-05 19:49:33 · 29112 阅读 · 0 评论 -
Python 把二进制mnist数据库转换为图片
mnist数据库可以通过caffe里的get_mnist.sh文件下载,路径是: caffe-master/data/mnist/get_mnist.sh,get_mnist.sh内容如下:#!/usr/bin/env sh# This scripts downloads the mnist data and unzips it.DIR="$( cd "$(dirname "$0")"原创 2018-01-29 19:23:03 · 1659 阅读 · 0 评论 -
Keras GRU 文字识别
GRU(Gated Recurrent Unit)是LSTM的一个变体,也能克服RNN无法很好处理远距离依赖的问题。GRU的结构跟LSTM类似,不过增加了让三个门层也接收细胞状态的输入,是常用的LSTM变体之一。LSTM核心模块:这一核心模块在GRU中变为: CTC网络结构定义:def get_model(height,nclass): input = Input(shap...原创 2018-02-10 19:18:38 · 7582 阅读 · 4 评论 -
循环神经网络RNN模型和长短时记忆系统LSTM
传统DNN或者CNN无法对时间序列上的变化进行建模,即当前的预测只跟当前的输入样本相关,无法建立在时间或者先后顺序上出现在当前样本之前或者之后的样本之间的联系。实际的很多场景中,样本出现的时间顺序非常重要,例如自然语言处理、语音识别、手写体识别等应用。循环神经网络RNN包含循环的网络,可以记录信息的持久化信息,特别适合应用在跟时间序列相关的场合。 RNN之父Jürgen原创 2018-02-06 21:32:09 · 9114 阅读 · 0 评论 -
显卡、显卡驱动、显存、GPU、CUDA、cuDNN
显卡Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟信号让显示器显示出来。显卡是计算机的标配之一,计算机要显示图像就必须安装显卡。普通计算机的显卡一般是集成在主板上的。显卡驱动显卡驱动是显卡跟计算机连接的桥梁,可以让计算机识别到GPU硬件,是必须正确安装...原创 2018-03-07 13:09:05 · 2381 阅读 · 0 评论 -
10大深度学习架构:计算机视觉优秀从业者必备
选自Analytics Vidhya机器之心编译参与:路雪、李亚洲、黄小天近日,Faizan Shaikh 在 Analytics Vidhya 发表了一篇题为《10 Advanced Deep Learning Architectures Data Scientists Should Know!》的文章,总结了计算机视觉领域已经成效卓著的 10 个深度学习架构,并附上了每篇论文的地址链接和代码实...转载 2018-03-15 12:16:41 · 1174 阅读 · 0 评论 -
卷积神经网络CNN
CNN综述卷积神经网络CNN是对BP神经网络的改进,与BP一样,都采用了前向传播计算输出值,反向传播调整权重和偏置,卷积神经网络与普通神经网络的区别在于,卷积神经网络包含了一个由卷积层和子采样层(池化层)构成的特征抽取器。CNN相邻层之间的神经单元也并不是全连接,而是部分连接,某个神经单元的感知区域来自于上层的部分神经单元,而不是像BP那样与所有的上层神经单元相连接。在CNN的一个原创 2017-06-27 23:02:32 · 5058 阅读 · 0 评论 -
端到端文本识别CRNN论文解读
CRNN 论文: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text RecognitionCRNN不定长中文识别项目下载地址: https://download.csdn.net/download/dcrmg/10248818CR...原创 2018-05-04 20:26:15 · 8492 阅读 · 2 评论 -
精确率、召回率、准确率与ROC曲线
精确率表示的是预测为某类样本(例如正样本)中有多少是真正的该类样本,一般用来评价分类任务模型。 比如对于一个分类模型,预测结果为A类的所有样本中包含A0个真正的A样本,和A1个不是A样本的其他类样本,那么该分类模型对于分类A的精确率就是A0/(A0+A1)。 通常来说精确率越高,分类效果越好。但是在样本分布非常不均衡的情况下, 精确率高并不一定意味着是一个好的模型。 比如对于预测长沙明天是否会下雪...原创 2018-05-15 09:30:44 · 8265 阅读 · 0 评论 -
RNN激活函数、Encoder-Decoder、Seq2Seq、Attention
RNN中为什么使用使用tanh激活,不用sigmoid、Relu Sigmoid函数的导数范围是(0,0.25], Tanh函数的导数是(0,1]。由于RNN中会执行很多累乘,小于1的小数累乘会导致梯度越来越接近于0,出现梯度消失现象。Tanh与Sigmoid相比,梯度更大,收敛速度更快并且出现梯度消失的情况要优于Sigmoid。另一点是Sigmoid的输出均大于0,不是...原创 2018-11-23 16:20:01 · 10222 阅读 · 0 评论 -
深度学习的一些方法
1. 参数初始化训练之前一定要执行参数初始化,否则可能减慢收敛速度,影响训练结果,或者造成Nan数值溢出等异常问题。特别的,如果所有参数都是0,则反向传播时,隐含层中所有参数的地位是一样,导致每次更新后隐层的参数都是一样的,导致学习失败。初始化方法:随机初始化、高斯分布初始化、均匀初始化、与参数量 n 相关的平方、开放初始化等。xavier初始化: xavier初始化方法由Beng...原创 2018-11-23 09:44:38 · 8384 阅读 · 0 评论 -
SSD 检测原理
SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法,速度比Faster RCNN更快,mAP优于YOLO v1。SSD方法基于前馈卷积网络,其产生固定大小的边界框集合和框中对象类别的分数,接着是非最大化抑制步骤以产生最终检测。 SSD设计理念:1. 多尺度特征图检测在基础卷积网络提取CNN特征...原创 2018-11-26 20:53:06 · 5304 阅读 · 0 评论 -
YOLO v1 v2 v3
YOLO v1 YOLO v1的检测思路YOLO v1的整体思路是将输入图像(448×448)均分为7×7个网格,在每个网格上直接预测2个目标物体的位置+2个目标物体的类别概率+整体网格属于某一分类的最大概率,若分类是20类,则每一张输入图片最后输出是 7×7×(20+2×(4+1))=7*7*50 维的向量。 v1的检测特点v1检测的特点是速度快,但是根据物理位置分...原创 2018-11-27 09:36:46 · 2100 阅读 · 0 评论 -
GAN、DCGAN、WGAN、SRGAN
GAN生成网络接收一个随机噪声,生成逼真图像;判别网络接收一个图像,生成该图像是真实的概率(0~1);GAN网络中存在两个不同的网络,训练方式采用的是对抗训练方式,其中G的梯度更新信息来自于判别器D,而不是来自数据样本。GAN不适合处理离散形式的数据,比如文本。 DCGANDCGAN(deep convolutional generative adver...原创 2018-11-27 19:36:44 · 5752 阅读 · 0 评论 -
python+PIL转换VOC分割数据格式制作索引彩色图
参考:https://blog.csdn.net/tellsummer/article/details/80815826# coding:utf-8from random import randintfrom PIL import Imageimport osdef randomPalette(length, min, max): return [randint(mi...原创 2019-07-05 19:10:58 · 3764 阅读 · 1 评论 -
python+kmeans计算VOC数据格式xml anchors聚类
#!/usr/bin/env python# -*- coding: utf8 -*-import sysfrom xml.etree import ElementTreefrom lxml import etreeimport numpy as npimport osimport matplotlib.pyplot as pltfrom sklearn.cluster i...原创 2019-07-05 19:44:01 · 2841 阅读 · 6 评论 -
计算数据集的均值和方差(mean,std)
coco数据集的均值和方差(三分量顺序是RGB)mean = [0.471, 0.448, 0.408]std = [0.234, 0.239, 0.242]imagenet数据集的均值和方差(三分量顺序是RGB)mean = [0.485, 0.456, 0.406]std = [0.229, 0.224, 0.225]用opencv和numpy计算自己数...原创 2019-10-10 08:50:00 · 38602 阅读 · 14 评论 -
几个常用的计算两个概率分布之间距离的方法以及python实现
1. 欧氏距离(Euclidean Distance)欧氏距离源自欧氏空间中两点间的直线距离,是最常见的一种距离计算方式。计算公式是两个矩阵中对应元素之差的平方和再开方。python实现:import numpy as npx = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])y = np.array([[5, 6, 7, 8],[1, 2, ...原创 2018-09-29 20:11:36 · 24583 阅读 · 4 评论 -
风格迁移简介
1. 神经风格迁移之前的风格迁移方法1) 基于笔划的渲染(Stroke-based rendering SBR)基于笔划的渲染是指在数字画布上增加虚拟笔划以渲染具有特定样式的图片的方法。应用场景大多限定在油画、水彩、草图等,不够灵活。2) 图像类比方法图像类比旨在学习一对源图像和目标图像之间的映射,以监督学习的方式定位风格化图像。图像类比训练集包括成对的未校正的源图像和具有特定样式的...原创 2018-08-22 19:53:32 · 19801 阅读 · 0 评论 -
sequence to sequence模型
sequence to sequence模型sequence to sequence模型是一类End-to-End的算法框架,也就是从序列到序列的转换模型框架,比如机器翻译,自动应答等场景。Seq2Seq一般是通过Encoder-Decoder(编码-解码)框架实现,Encoder和Decoder部分可以是任意的文字,语音,图像,视频数据,模型可以采用CNN、RNN、LSTM、GRU、BLSTM等...原创 2018-05-16 09:24:09 · 27678 阅读 · 1 评论 -
全卷积神经网络FCN
卷积神经网络CNN(YannLecun,1998年)通过构建多层的卷积层自动提取图像上的特征,一般来说,排在前边较浅的卷积层采用较小的感知域,可以学习到图像的一些局部的特征(如纹理特征),排在后边较深的卷积层采用较大的感知域,可以学习到更加抽象的特征(如物体大小,位置和方向信息等)。CNN在图像分类和图像检测领域取得了广泛应用。 CNN提取的抽象特征对图像分类、图像中包含哪些类别的物体,以及图...原创 2018-07-19 14:48:55 · 29341 阅读 · 2 评论 -
Dilated Convolutions 空洞卷积
Dilated Convolutions,中文一般称为空洞卷积或者扩张卷积,是一种改进的图像卷积方法。扩张卷积工作示意图如下:图a是普通的卷积,感受野是3*3,相当于不扩充,dilation=1图b是扩张卷积,感受野是7*7,dilation=2图c是扩张卷积,感受野是15*15,dilation=4 扩张卷积中多了一个扩充率参数(dilation rate),用来控制扩张(空洞填...原创 2018-07-20 07:52:12 · 7629 阅读 · 3 评论 -
keras图像风格迁移
风格迁移: 在内容上尽量与基准图像保持一致,在风格上尽量与风格图像保持一致。1. 使用预训练的VGG19网络提取特征 2. 损失函数之一是“内容损失”(content loss),代表合成的图像的特征与基准图像的特征之间的L2距离,保证生成的图像内容和基准图像保持一致。 3. 损失函数之二是“风格损失”(style loss),代表合成图像的特征与风格图像的特征之间的Gram矩阵之间的差...原创 2018-07-29 12:37:43 · 4497 阅读 · 1 评论 -
Gram格拉姆矩阵在风格迁移中的应用
Gram定义n维欧式空间中任意k个向量之间两两的内积所组成的矩阵,称为这k个向量的格拉姆矩阵(Gram matrix)根据定义可以看到,每个Gram矩阵背后都有一组向量,Gram矩阵就是由这一组向量两两内积得到的,先说一下向量内积是做什么的。向量的内积,也叫向量的点乘,对两个向量执行内积运算,就是对这两个向量对应位一一相乘之后求和的操作,内积的结果是一个标量。例如对于向量a和向量b:...原创 2018-07-27 09:13:52 · 11202 阅读 · 1 评论 -
Deep Generative Filter for motion deblurring 论文解读
"Deep Generative Filter for motion deblurring"(用于消除运动模糊的深度生成网络)是2017年9月挂到arXiv上的一篇论文,论文连接: https://arxiv.org/abs/1709.03481 摘要由于相机抖动导致的运动模糊由于其本身的病态属性,一直是计算机视觉领域一个具有挑战性的问题。在3D空间中,相机和被拍摄物体之间的相对运动...翻译 2018-08-09 09:18:40 · 4056 阅读 · 2 评论 -
卷积神经网络特征图可视化(自定义网络和VGG网络)
借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么。 自定义网络特征可视化 代码:# coding: utf-8from keras.models import Modelimport cv2import matplotlib.pyplot as pltfrom keras.models import...原创 2018-07-27 23:22:38 · 74894 阅读 · 74 评论 -
批规范化 Batch Normalization
batch normalization 就是对数据做批规范化,使得数据满足均值为0,方差为1的正太分布。其主要作用是缓解DNN训练中的梯度消失/爆炸现象,加快模型的训练速度。BN在2015年提出,论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift机器学习领...原创 2018-08-08 09:26:45 · 6192 阅读 · 1 评论 -
神经网络损失函数中的正则化项L1和L2
神经网络中损失函数后一般会加一个额外的正则项L1或L2,也成为L1范数和L2范数。正则项可以看做是损失函数的惩罚项,用来对损失函数中的系数做一些限制。正则化描述:L1正则化是指权值向量w中各个元素的绝对值之和;L2正则化是指权值向量w中各个元素的平方和然后再求平方根;一般都会在正则化项之前添加一个系数,这个系数需要用户设定,系数越大,正则化作用越明显。正则化作用:L1正则化可以产生稀疏权值矩阵,即...原创 2018-05-07 21:29:27 · 11231 阅读 · 0 评论 -
神经网络中的Softmax激活函数
Softmax回归模型是logistic回归模型在多分类问题上的推广,适用于多分类问题中,且类别之间互斥的场合。Softmax将多个神经元的输出,映射到(0,1)区间内,可以看成是当前输出是属于各个分类的概率,从而来进行多分类。假设有一个数组V,Vi表示V中的第i个元素,那么Vi元素的softmax值就是:例如 V = [9,6,3,1] , 经原创 2018-02-03 20:47:26 · 22303 阅读 · 4 评论 -
caffe中lenet_train_test.prototxt配置文件注解
caffe框架下的lenet.prototxt定义了一个广义上的LeNet模型,对MNIST数据库进行训练实际使用的是lenet_train_test.prototxt模型。lenet_train_test.prototxt模型定义了一个包含2个卷积层,2个池化层,2个全连接层,1个激活函数层的卷积神经网络模型,模型如下:name: "LeNet"原创 2017-06-28 20:58:45 · 1350 阅读 · 0 评论 -
人工神经元模型及常见激活函数
人工神经元模型生物学上神经元通常由细胞体,细胞核,树突和轴突构成。树突用来接收其他神经元传导过来的信号,一个神经元有多个树突;细胞核是神经元中的核心模块,用来处理所有的传入信号;轴突是输出信号的单元,它有很多个轴突末梢,可以给其它神经元的树突传递信号。人工神经元的模型可以由下图来表述:图中X1~Xn是从其它神经元传入的输入信号,Wi1原创 2017-06-26 21:46:45 · 34532 阅读 · 2 评论