![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 67
hr_net
这个作者很懒,什么都没留下…
展开
-
大规模优化问题,Scipy?Ceres?PyTorch!
优化问题一般通过scipy.optimize或者Ceres Solver优化器求解。但在参数量较大的优化问题上,scipy提供的BFGS、L-BFGS-B、CG、SLSQP等梯度优化算法其复杂度和存储需求指数级上升,无法满足计算效率;而Ceres需要额外的语言来支持,当前算法工程师一般以python为主,学习成本较大。且项目环境需要多语言混编,配置与部署难度较大。本文使用PyTorch/TensorFlow等机器学习框架,通过自动求导高效计算梯度,避免手动计算梯度复杂性,利用CPU/CPU来加速求解优化原创 2024-07-17 11:33:37 · 198 阅读 · 0 评论 -
一分钟学会labelme的安装与使用
深度学习需要海量的数据量,在人工标注时常用的软件有labelme 和 lableImg,分别对应着语义分割和目标检测的标注。本文已极简的教程对labelme进行安装和使用教学。一、安装 terminal(python环境下):pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U labelme二、使用terminal(python环境下):labelme打开labelme:”open“ 图片路径,.原创 2020-10-21 14:35:38 · 943 阅读 · 3 评论 -
High-frequency Component Helps Explain the Generalization of Convolutional Neural Networks CNN泛华论文解读
通常情况下,CNN表现特征和肉眼可理解的特征存在一定的出入,在CNN泛化能力上难以理解。本文以CMU 的汪浩瀚、邢波等人《High-frequency Component Helps Explain the Generalization of Convolutional Neural Network》中进行阐述。参考 https://zhuanlan.zhihu.com/p/248068207?utm_source=wechat_session&utm_medium=social&u..原创 2020-09-16 17:09:11 · 1153 阅读 · 0 评论 -
孪生网络入门Siamese Network
学习一个模型之前我们先了解一下该模型的作用,孪生网络解决的问题:对于两个图片或者其他数据源,进行change detection、验证等。模型思路:每次需要输入两个样本作为一个样本对计算距离。将输入映射为一个特征向量,使用两个向量之间的“距离”(L2 Norm)来表示输入之间的差异(图像语义上的差距)。孪生网络可以用以判断两个样本之间的相似度。孪生网络特点:一类包含两个或更多个相同子网络的神经网络架构。 这里相同是指它们具有相同的配置即具有相同的参数和权重。 参数更新在两个子网上共同进行。子.原创 2020-07-20 16:31:02 · 3553 阅读 · 0 评论 -
GAN生成对抗网络入门理解
有兴趣阅读GAN鼻祖之作的给出链接: 2014年NIPS Generative Adversarial Net原理解释GAN核心思想:生成器G与判别器D,双方博弈。生成器G的输入是手工样本/噪声/随机数之类,通过模型学习(包装)成一个逼真的样本进行输出。这里所谓逼真指的是逼近真实的样本。目的:使得自己造样本的能力尽可能强,强到什么程度呢,你判别网络没法判断我是真样本还是假样本。 判别器D的输入是生成器的输出,二分类模型判断该输入是否是真实样本。目的:判别出来属于的一张图来自真实样本集还是假样.原创 2020-07-17 21:23:20 · 346 阅读 · 1 评论 -
卫星图变化检测论文研读:Transferred Deep Learning-Based Change Detection in Remote Sensing Images 2019
期刊:IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING ,ieee trans 中等刊目的:同一位置不同时间的卫星图变化检测。亮点:①设置多任务网络,一个任务是change二值化识别(训练集,有change标签),一个是规则差分识别(测试集,无change标签,规则生成差分标签)。两个任务底层参数共享,文称该结构可降低训练集和测试集直接数据分布的差异(持怀疑态度,这个逻辑是真滴.... 不怎么样)。②迁移学习,第①部分为预训练,第二部分进行fi原创 2020-07-17 19:51:36 · 1032 阅读 · 0 评论 -
deconvolution/transposed conv 理解
卷积层使用卷积核逐块计算会使图像变小,下采样pooling也可以。而上采样还是使用卷积核计算的吗?本文介绍对反卷积操作的理解。矩阵角度理解:我们先回顾下卷积的操作, 对于一个 4x4的输入图像,用3x3卷积核,padding=0,stride=1,进行卷积,能得到2x2的输出图像。把输入及输出分别展开成为一维向量,记为 i 及 o 。则卷积可以看做是矩阵运算 o = ci ,其中c的表达式如下:反卷积过程,对于2x2的输入图像,希望能得到4x4的输出图像。同样把输入及输出分别展开成为一维.原创 2020-06-08 13:10:24 · 284 阅读 · 0 评论 -
cnn网络架构的演进简述
最近要准备cnn科普的ppt,本文对cnn的网络架构的演进进行简述,概述cnn发展历程与重要结点。在cv领域,cnn的网络框架可谓是大红大紫。随着模型的迭代,网络越来越深,架构越来越复杂,解决反向传播时梯度消失的方法也越来越巧妙。1.开山之作:LeNet 90年代卷积神经网络的祖师爷LeCun在1998年提出,定义了cnn基本组件:卷积、池化、全连接。LeNet-5,包含两层卷积三层全连接共五层,用以识别手写体数字10分类。2.第二春:AlexNet 2012 ImageNet冠军.原创 2020-05-11 20:54:25 · 584 阅读 · 0 评论 -
轨迹生成路网论文研读:Learning to Generate Maps from Trajectories
本文入选AAAI 2020传统路网生成的方法分为三类:聚类/轨迹顺序扫描合并/密度。前两者基于点生成的line,在低采样频率时出现“伪捷径”,且无法处理平行道路。第三类基于点云,可以处理低采样频率,但是无法区分平行道路。本文提出deepMG模型生成路网,可以处理不同频率的轨迹点,且在拓扑中区分平行道路。deepMG包含两个部分:1.几何转换:T2RNet,提取两类轨迹特征作为输入,...原创 2020-04-28 20:50:36 · 2188 阅读 · 1 评论 -
道路分割论文研读之D-LinkNet :LinkNet with Pretrained Encoder and Dilated Convolution for High Resolution Sate
本人最近在研究路网生成算法,遇到瓶颈,借鉴卫星图识别的经典算法。1.Introduction:道路提取可视为二值语义分割任务,像素级二分类。卫星图路网分割的挑战:1. 输入的图像是高分辨率的,因此网络应该有大的接收范围,可以覆盖整个图像。2. 卫星图像中的道路往往细长复杂,覆盖了整个图像的一小部分。在这种情况下,保存详细的空间信息非常重要。3. 道路具有天然的连通性和较大的跨度...原创 2020-04-28 19:04:00 · 2589 阅读 · 0 评论 -
tensorflow2.1 输出中间层结果
炼丹时经常需要可视化中间层的结果进行分析,本文采用tensorflow2.1版本,进行代码展示def show_middle(test_dataset_list, model, checkpoint_dir): tf.keras.backend.clear_session() #读取测试集 test_dataset = load_dataset_test() ...原创 2020-04-26 20:36:13 · 4787 阅读 · 3 评论 -
反向传播中的pooling层
pooling层是如何作用在反向传播的过程中?曾经面试被问过这个问题,当时的回答是pooling不参与反向传播,但是也没深究是怎么个不参与法。本文进行简析。pooling通常分两种:max和mean。由于pooling层会改变feature的尺寸,因此有如下假设成立: 假设经过pooling后有n个梯度,那么pooling层的前一层梯度个数为4n,使得反向传播时梯度无法一...原创 2020-04-20 19:29:27 · 659 阅读 · 0 评论 -
tensorflow-gpu OOM的参数调整
今天训练网络时出现OOM的error,现总结几点调整方式OOM 是由GPU内存不够导致的溢出error,解决方法有以下几点:1. 降低batch,但是有些网络对batch有一定的要求,当batch=1时,BN失效。一般情况下,batch尽可能大一些,加速训练的同时可以获得较好的性能。2.降低filter数量3.降低buffer缓存,如下图所示,dataset.shuffle中的...原创 2020-04-08 11:43:33 · 732 阅读 · 0 评论 -
深度学习基操:batch shuffle编程
在训练网络时,经常会遇到数据集中数据与标签分离的情况,此时进行batch shuffle时需要保持数据与标签一一对应的关系,编程实现如下。以图像识别中玩滥的MNIST数据集为例:MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分:Training set images: train-images-idx3-ubyte.g...原创 2018-12-27 11:36:25 · 1083 阅读 · 0 评论 -
tensorflow显卡配置
问题描述当多个调用tensorflow的程序同时运行时,经常会出现显存空间不够的报错。如下图,此时在cmd(win)/termial(ubuntu)调用:nvidia-smi查看静态(当时)的显卡情况:可以看到下面显示八个GPU,每个GPU的内存都将近占满,但是仅仅第一个GPU在使用(使用率92%)。或者输入一下命令动态刷新(每1s刷新一次)GPU情况:watch -n...原创 2019-02-25 19:50:32 · 4168 阅读 · 0 评论 -
tensorflow 读取机制及代码分析
参考:十图详解tensorflow数据读取机制(附代码) - 何之源的文章 - 知乎 https://zhuanlan.zhihu.com/p/27238630在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解。确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料。今天这篇文章就以图片的形式,用最简单的语言,为大家详细解释一下tensorflow的数据读取机...原创 2019-03-06 17:16:26 · 186 阅读 · 0 评论 -
TensorFlow :tf.data 高性能数据输入管道设计指南
TensorFlow版本:1.12.0本篇主要介绍怎么使用 tf.data API 来构建高性能的输入 pipeline。tf.data官方教程详见前面的博客<<<<<<<<<<tf.data官方教程文章目录1. 数据输入管道的结构2. 数据输...转载 2019-03-11 17:28:41 · 2627 阅读 · 2 评论 -
目标检测常用网络RCNN系列快速回顾
本文对目标检测常用网络:RCNN系列做一个简单的小节RCNN系列:selective search:选择性搜索我们不使用暴力方法,而是用候选区域方法(region proposal method)创建目标检测的感兴趣区域(ROI)。在选择性搜索(selective search,SS)中,我们首先将每个像素作为一组。然后,计算每一组的纹理,并将两个最接近的组结合起来。但是为...原创 2019-04-01 16:15:07 · 524 阅读 · 0 评论 -
python编程之NMS
非极大值抑制(NMS)NMS的算法步骤如下:# INPUT:所有预测出的bounding box (bbx)信息(坐标和置信度confidence), IOU阈值(大于该阈值的bbx将被移除)for object in all objects: (1) 获取当前目标类别下所有bbx的信息 (2) 将bbx按照confidence从高到低排序,并记录当前confidence...原创 2019-04-08 22:30:04 · 715 阅读 · 0 评论 -
tensorflow之focal loss 实现
何凯明大佬的Focal Loss对交叉熵进行改进,主要解决分类问题中类别不均衡导致的模型训偏问题。在计算机视觉(CV)任务里常常会碰到类别不平衡的问题, 例如:1. 图片分类任务,有的类别图片多,有的类别图片少2. 检测任务。现在的检测方法如SSD和RCNN系列,都使用anchor机制。 训练时正负anchor的比例很悬殊.3. 分割任务, 背景像素数量通常远大于前景像素。...原创 2019-04-19 11:38:04 · 7698 阅读 · 2 评论 -
CNN感受野计算
转自:作者 DexterLei链接:https://www.jianshu.com/p/e875117e53720. Calculating Receptive Field of CNNCNN特征图的两种可视化方法感受野指的是一个特定的 CNN 特征(特征图上的某个点)在输入空间所受影响的区域。一个感受野可以用中信位置和打表来表征。然而,对于一个 CNN 特征来说,感受野中...转载 2019-08-04 20:06:46 · 160 阅读 · 0 评论 -
深度学习原理分析之数据不足与过拟合
人们常常知道若干种解决过拟合的方法但不知其因,本文对其进行原理剖析。一个模型所能提供的信息一般来源于两个方面, 一是训练数据中蕴含的信息; 二是在模型的形成过程中(包括构造、 学习、 推理等),人们提供的先验信息。当训练数据不足时, 说明模型从原始数据中获取的信息比较少, 这种情况下要想保证模型的效果, 就需要更多先验信息。先验信息的作用方式分为两种:先验信息可以作用在模型上,...原创 2019-03-04 22:41:04 · 1815 阅读 · 0 评论 -
从输入输出对RNN分类
RNN基本框架:注意Wa、Ba、Wy、By参数共享。RNN输入输出数量:单输入单输出、多输入单输出、单输入多输出、多输入多输出(对等与不对等)实例:对应RNN结构:...原创 2019-02-17 21:49:38 · 1799 阅读 · 0 评论 -
深度学习之风格迁移
0.什么是风格迁移为了描述如何实现神经网络迁移,我将使用C来表示内容图像,S表示风格图像,G表示生成的图像。即生成的图像G在内容上(线条轮廓)继承C,在风格上(纹理、色彩等)继承S。为了实现神经风格迁移,我们需要知道卷积网络在深层的、浅层的部分提取的对应特征。1.可视化CNN特征AlexNet不同layers的特征可视化图,每3*3代表一个feature channel:...原创 2019-02-17 20:41:26 · 2084 阅读 · 0 评论 -
深度学习mAP
mAP,其中代表P(Precision)精确率。AP(Average precision)单类标签平均(各个召回率中最大精确率的平均数)的精确率,mAP(Mean Average Precision)所有类标签的平均精确率。1.准确率(accuracy)、精确率(Precision)、召回率(Recall)准确率(accuracy),精确率(Precision)和召回率(Recall)是信...原创 2019-01-14 16:24:31 · 19347 阅读 · 8 评论 -
Ablation study
Ablation study 消融实验,在计算机视觉领域中,往往提及消融实验来验证本文的创新点。比如你弄了个目标检测的pipeline用了A, B, C,然后效果还不错,但你并不知道A, B, C各自到底起了多大的作用,可能B效率很低同时精度很好,也可能A和B彼此相互促进。Ablation study/experiment就是用来告诉你或者读者整个流程里面的关键部分到底起了多大作用,就像Ro...原创 2019-01-14 15:11:53 · 12388 阅读 · 0 评论 -
tensoflow迁移学习之finetune
在迁移学习中,fine tune是其中一类:将预训练模型参数导入目标模型中作为初始化参数,整体进行训练,新增的网络层参数采用随机初始化。 该方法适用于目标任务的数据集充足的情况下,此时过拟合程度低。那么如何加载部分参数作为初始化参数?我们采用模型复现的方式导入图,而非加载tf.train.import_meta_graph()一般实验情况下保存的时候,都是用的saver类来保存,如下...原创 2019-01-24 11:35:41 · 245 阅读 · 0 评论 -
总述《tensorflow 迁移学习》
迁移学习方法多样,对于新手来说很不友好,本文总结迁移学习的各种情况,并在TensorFlow中对AlexNet进行迁移学习以对德国交通标志进行分类。1. 迁移学习的四种情况在迁移学习中,有四种情况决定着该如何训练pre-trained neural network以便将其应用于新的问题。而这取决于两个因素:新数据集的大小以及新数据集与原始数据集(指训练pre-tr...原创 2019-01-24 10:25:03 · 547 阅读 · 1 评论 -
python matplotlib subplot 做镶嵌图
总括MATLAB和pyplot有当前的图形(figure)和当前的轴(axes)的概念,所有的作图命令都是对当前的对象作用。可以通过gca()获得当前的axes(轴),通过gcf()获得当前的图形(figure)import numpy as npimport matplotlib.pyplot as ...翻译 2018-12-28 15:02:57 · 1909 阅读 · 0 评论 -
卷积神经网络原理及实战简介
版权声明:如果你觉得写的还可以,可以考虑打赏一下。转载请联系。 https://blog.csdn.net/u011974639/article/details/75363565 </div> <div id="content_views" class="markdown_views">...转载 2018-12-21 11:06:19 · 1109 阅读 · 0 评论 -
过拟合与正则化
过拟合问题在训练时,随着损失函数不断下降,有可能过度拟合训练数据中的随机噪声,在这种情况下对未知数据可能无法做出可靠的判断。正则化为了避免过度拟合问题,我们可以使用正则化。在损失函数中添加正则化项。所谓正则化,即在损失函数中增加先验约束,通常约束参数量,使得大部分参数接近于0。具体如下:...原创 2018-12-21 09:53:22 · 158 阅读 · 0 评论 -
交叉熵函数理解
神经网络模型的优化目标是通过损失函数(loss function)来定义的。交叉熵作为分类任务中经典的损失函数,本文将介绍其原理。分类问题损失函数分类问题和回归问题是监督学习的两大种类。在分类问题上,通过神经网络解决分类问题常用的方法是设置n个输出节点,n为类别的个数。这时候需要判断输出指标,损失函数解决了该如何确定一个输出向量和期望的向量有多接近的问题。熵熵的本质是香农信息量的期...原创 2018-12-21 09:17:31 · 733 阅读 · 1 评论 -
ShuffleNet总结
论文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 论文链接:https://arxiv.org/abs/1707.01083参考博客:@Thaurun https://www.cnblogs.com/heguanyou/p/8087422.html目前许多CNNs模型...原创 2018-12-20 11:14:43 · 285 阅读 · 0 评论 -
深度学习基础之VGG网络
2015年Karen Simonyan 在《Very Deep Convolutional Networks for Large-scale Image Recognition》给出结论:卷积神经网络的深度增加和小卷积核的使用对网络的最终分类识别效果有很大的作用。Architecture[图片来源]VGG-16VGG-16的网络很简单,有13个卷积层(被5个max-pool...原创 2019-01-25 09:30:25 · 1630 阅读 · 0 评论 -
finetuning tensorflow实现
转载自:https://blog.csdn.net/huachao1001/article/details/78501928使用tensorflow过程中,训练结束后我们需要用到模型文件。有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练。这时候我们需要掌握如何操作这些模型数据。看完本...转载 2019-01-15 10:25:58 · 382 阅读 · 0 评论 -
YOLO (You only look once)介绍
本文介绍目标检测经典快速算法YOLO的原理与方法Ref:Redmon, Joseph, et al. "You Only Look Once: Unified, Real-Time Object Detection." (2015):779-788.0. 目标检测基础知识0.0 标签定义方法目标检测包括分类与定位两个任务,在深度学校中通常采用多任务学习进行预测。下面以三分类(人...原创 2019-02-17 18:43:33 · 1636 阅读 · 0 评论 -
Multi-crop at test time
在比赛或打榜时,提升网络性能经常用的手段之一是Multi-crop at test time。 Multi-crop at test time是数据扩充(Data augmentation)应用到图像测试时的一种手段。举个例子,让我们看看猫的图片,然后把它复制四遍,包括它的两个镜像版本。有一种叫作10-crop的技术(crop理解为裁剪的意思),它基本上说,假设你取这个中心区域,裁剪,...原创 2019-02-17 11:32:04 · 1608 阅读 · 0 评论 -
GoogleNet简介(Inception network)
本文对Inception模块进行介绍及原理分析Inception 即盗梦空间,是电影中的一个梗~ ,取名GoogleNet 是Google团队向LeNet致敬之意。贡献: 1. 合并1*1、3*3、5*5、pooling层不需要人为决定采取1*1、3*3、5*5、pooling层 采用bottleneck layer(瓶颈层)大幅压缩计算量 CONV与pooli...原创 2019-02-16 22:44:09 · 1721 阅读 · 0 评论 -
卷积中计算代价
本文介绍深度学习卷积操作中计算代价(the problem of computational cost)的衡量方法 在模型压缩以及嵌入式开发中,由于硬件条件的限制,导致网络的计算代价与参数量受到约束。那么计算代价如何衡量?举例:如下图,输入为28*28*192,卷积核大小为5*5*192,卷积核个数为32个,输出为28*28*32的特征。我们可以这样理解,对于output共计2...原创 2019-02-16 22:19:51 · 1712 阅读 · 0 评论 -
1×1 卷积(Network in Network)
介绍1*1卷积核作用,为谷歌Inception做铺垫。首先在不考虑卷积核数量的情况下,1*1卷积增加了非线性。 在CNN中,假设有一个28×28×192的输入层,可以使用池化层压缩它的高度和宽度。但如果通道数量很大,该如何把它压缩为28×28×32维度的层呢?你可以用32个大小为1×1的过滤器,严格来讲每个过滤器大小都是1×1×192维,因为过滤器中通道数量必须与输入层中通道的数量...原创 2019-02-16 21:44:04 · 510 阅读 · 0 评论