随笔分类 - 深度学习
摘要:训练技巧 1.首先用小批量数据,查看是否代码有问题,理论上模型应该能将损失降到0左右,准确率为1. 2.使用较小的学习率比如1e-6,观察损失值的变化,如果损失不怎么动就是学习率太小了,增大学习率。 一般对于损失的计算来说:像位置坐标这种是连续值变化的东西,倾向于回归损失如L1 或L2损失 其他的比
阅读全文
摘要:深度学习框架直接得到的模型太重,在移动端及CPU上直接部署不合适,因此将训练出的模型通过推理框架部署. 推理框架包括:模型优化器和推理引擎两部分. 推理框架选择: 带GPU的桌面系统,用TensorRt. nvidia自家的,还有量化 手机上选择,Tvm ,ncnn等arm opencl的优化成果。
阅读全文
摘要:se-net sequeeze:压缩通道得到通道级别的响应 excitation:激活 得到通道注意力的权重 对已经得到的featur map: 首先将特征图进行压缩得到(1,1,C) v1 sequeeze 然后对v1乘上一个矩阵W(待学习参数)得到vec(1,1,C) excitation 最终
阅读全文
摘要:Siamese 泰国人,暹罗人 场景 孪生神经网络用于处理**两个输入"比较类似"**的情况。 用于有两个输入,比较两个输入之间的距离的场景,如比较银行预留签名与当前签名是不是一个人 实现 共享权值,其实就是一个网路复制一下,组合成一个孪生网络. 当两边网络不同,就是伪孪生网络 其他 伪孪生神经网络
阅读全文
摘要:本质 用同一个卷积核在一张feature map上滑动卷积,减少了参数量 深层基础 图像的底层特征是低级特征比如纹理,线条,边缘等,其提取不会因为位置的变化而变化,在图像的任何地方都可以使用一个微风提取器提取. 因此可以用权值共享来做. 但是图像的高层特征(高级特征),比如一张人脸图片,嘴和鼻子位置
阅读全文
摘要:1.一次并行计算一个batch,因此所有的计算过程产生的tensor多了第一维batch_size 2.源码实现大量用到了python的广播功能(broadcasting),实现了不同维度数组间的直接计算 3.tensor之间的各种拼接变换组合 4.还有经常用的tensor.max()函数,可以输出
阅读全文
摘要:卷积(多 >1 的映射) 本质:在对输入做9 >1的映射关系时,保持了输出相对于input中的位置性关系 对核矩阵做以下变形:卷积核的滑动步骤变成了卷积核矩阵的扩增 卷积的矩阵乘法变成以下形式:核矩阵重排,输入featuremap变形为向量 反卷积(1 >多 的映射) deconvlution/tr
阅读全文
摘要:1.序列数据: 自然语言 连续视频帧 股票走势 机器翻译 2.循环神经网络与传统神经网络的区别: 传统神经网络如多层感知机,每个隐藏层的节点之间是无连接的,而RNN则不然。有连接意味着有信息的流入,因此循环神经网络可以对序列数据进行预测和分类。 3.RNN序列处理 many 2 many :机器翻译
阅读全文
摘要:主要分三个手段: 低秩近似:image2col可以转成矩阵,训练得到权重矩阵,对权重矩阵先SVD分解(特点:对角线上特征值越来越小),将后面较小的几位去掉。(SVD近似,KPSVD近似)。张量分解:比较work的代表,cp分解(应用:xception) 稀疏近似(将大部分都变成0):拿出权重看一下分
阅读全文
摘要:img2col:将特征图image(3D)根据卷积核的尺寸按原图对应位置展开成行col(2D)。 当卷积步长小于核边长时,img2col会造成特征图像素的重叠复制增加内存,但是依然是更有效率的。 核矩阵:将每个卷积核展成一列,即核矩阵的高为k*k*(为每个卷积核的通道数),宽为 特征图矩阵:imag
阅读全文
摘要:利用一些饱和激活函数的如sigmoid激活时,假如利用均方误差损失,那么损失函数向最后一层的权重传递梯度时,梯度公式为 可见梯度与最后一层的激活函数的导数成正比,因此,如果起始输出值比较大,也即激活函数的导数比较小,那么整个梯度幅度更新幅度都比较小,收敛时间很长。若一开始输出值比较小那么更新速度比较
阅读全文
摘要:要看MobileNet先看Xception。Xception是inception V3的改进,具体是引入了深度可分卷积结构 将传统的卷积操作分成两步,假设原来是3*3的卷积,那么depthwise separable convolution就是先用M个3*3卷积核一对一卷积输入的M个feature
阅读全文
摘要:BN是对当前mini-batch进行归一化。 CBN是对当前以及当前往前数3个mini-batch的结果进行归一化 CmBN则是仅仅在这个Batch中进行累积。(直觉上最正确的做法,因为参与Normalize计算均值和方差的样本越多越能稳定输出,越接近真实数据分布)。比BN高出不到一个百分点。 1
阅读全文
摘要:回归就是通过y=wx+b得到的。 而如果是分类,则输出层神经元个数即为类别数。例如3类, o(i)=wx+b,i=1,2,3, 然后将输出值o做指数变化exp(o(i)),得到的exp(o(1))/exp(o(i)),即将输出值变为和为1的概率分布。(即对输出进行指数归一化处理) 分类的损失函数一般
阅读全文