- 博客(43)
- 收藏
- 关注
原创 JUC编程之——synchronized的底层实现与分析
管程也叫监视器(Monitors),是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件设备或一群变量。对共享变量能够进行的所有操作集中在一个模块中。(把信号量及其操作原语“封装”在一个对象内部)管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。管程提供一种机制,管程可以看作一个软件模块,它是将共享的变量和对于这些共享变量的操作封装起来,形成一个具有一定接口的功能模块,进程可以调用管程来实现进程级别的并发控制。
2023-04-11 20:50:17
569
原创 JUC编程之——线程的start方法及底层源码
主要知道第一行JVM_StartThread方法和最后一行Thread::start(native_thread)启动了线程;从.c的源码中可以看出start0()其实就是JVM_StartThread=>找到jvm.cpp。代码——OpenJDK源码网址:http://openjdk.java.net/Thread.java对应thread.c源码。最终是操作系统级别提高了start方法。
2023-04-10 14:05:26
545
原创 ResNext:Aggregated Residual Transformations for Deep Neural Networks
本文提出了一种简单的、高度模块化的图像分类网络结构。本文的网络是通过重复一个构建块来构建的,该构建块聚合了一组具有相同拓扑结构的转换(transformations)。本文设计了一个同构的多分支体系结构,只需要设置几个超参数来实现;这种策略探索了一个新的维度,我们称之为"cardinality 基数",作为深度和宽度之外的一个重要因素;在ImageNet-1k数据集上证明,即使在保持复杂度不变的限制条件下,增加"基数"也能提高分类精度;此外,当我们增加容量时,增加基数比更深入或更广泛更有效。
2023-03-13 20:26:30
646
原创 ConvMixer:Patches Are All You Need
尽管CNN多年以来一直是计算机视觉任务的主要架构,但最近的一些工作表明,基于Transformer的模型,尤其是ViT,在某些情况下会超越CNN的性能(尤其是后来的swin transformer,完全超越CNN, 里程碑);然而,因为Transformer的self-attention运行时间为二次的/平方的(On2O(n^2)On2),ViT使用patch embedding,将图像的小区域组合成单个输入特征,以便应用于更大的图像尺寸。
2023-03-07 12:34:15
1310
原创 SqueezeNet:ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
给定一个精度,能够达到这个精度的CNN模型有很多;较小的CNN在分布式训练中需要较少的服务器之间的通信(易于训练);较小的CNN需要更少的带宽来将新模型从云端导出到自动驾驶汽车(易于下载/传输);较小的CNN更适合部署在FPGA和其他内存有限的硬件上(易于部署);本文提出了一个名为SqueezeNet的小型CNN架构,包含以上所有优势;SqueezeNet在ImageNet上达到AlexNet级别的精度,单参数少了50倍。
2023-03-06 16:18:57
260
原创 DenseNet:Densely Connected Convolutional Networks
短路连接/残差连接可以让网络变得更深,收敛更快,精度更高;本文结合这种思想,提出密集卷积网络(DenseNet),以前馈方式实现密集连接;传统的L层网络有L个连接,就是每层和后续层之间的连接;而DenseNet有LL122LL1个直接连接;对每一层来说,将之前所有层的结果作为输入;(图1所示)缓解了梯度消失问题;加强了特征传播;鼓励特征重用;大幅度减少参数数量;
2023-03-04 17:34:59
197
原创 ResNet:Deep Residual Learning for Image Recognition
更深层的神经网络更难训练;本文提出一个残差学习框架来简化网络的训练,提出的网络要比以往的网络架构更深;本文明确的对学习的架构进行了重构,之前的网络学习出/拟合出一个分布,现在的网络用来拟合相对于上一层的残差(residual);本文进行了全面的实验证明这些残差网络的性能更好,并且可以显著的从网络深度中获得精度的收益;提出ResNet-152——比VGG深8倍,但是模型复杂度比VGG低;深度网络以端到端的多层方式自然地集成了低层/中层/高层特征和分类器,网络越深,提取到的特征就越丰富;
2023-02-27 20:12:19
640
原创 Pytorch二维卷积 conv2d 使用/源码/手写实现conv2d/手写向量内积实现conv2d/转置卷积实现——学习笔记
Pytorch二维卷积 conv2d 使用/源码/手写实现conv2d/手写向量内积实现conv2d/转置卷积实现
2023-02-27 13:35:08
8272
1
原创 Xception:Deep Learning with Depthwise Separable Convolutions
Inception结构是介于传统卷积和深度可分离卷积(深度可分离卷积=depthwise深度卷积 + pointwise1×1逐点卷积)的一种中间形态;深度可分离卷积相关内容:受此启发,深度可分离卷积可以被看作有很多分支结构的Inception模块(就是说…如果Inception里的分支有很多的话(分解到极致),可以等同于深度可分离卷积);基于此发现,本文本文提出一个新的Inception架构:Xception,将原Inception替换成深度可分离卷积;
2023-02-26 14:59:23
288
原创 Inception-V4, Inception-ResNet and the Impact of Residual Connections on Learning
深层卷积网络近年来图像识别性能最大进步的核心;Inception结构也被证明是一个计算成本低、性能好的网络架构;最何恺明团队提出残差架构,在2015ILSVRC挑战中,取得最好的成绩;ResNet性能与最新一代Inception-v3网络相似;这就提出一个问题:将Inception架构与残差连接架构综合起来,是否可以提升性能?本文用实验说明,残差结构可以显著的加快网络的训练,并且有残差模块的网络比没有残差模块的网络性能稍高;
2023-02-24 19:06:08
694
原创 Inception V2/V3里的Label Smoothing
Label Smoothing:一种机制/策略,通过估计训练时的label-dropout的边缘化效应实现对分类器的正则化;交叉熵损失由极大似然估计推导:最小化上述损失函数相当于最大化标签的预期对数似然性(说人话:最大化每个数据被正确分类的概率);考虑用one-hot独热向量编码时,只有正确的类别对应的标签为1(记为y),其他均为0,上述例子说明:正确答案对应的概率越大,交叉熵损失函数就越小;one-hot编码对应正确答案为:(0, 1, 0);的相对权重惩罚了预测的标签分布p与先前的u的偏差;
2023-02-22 12:54:56
211
原创 Inception V2/Inception V3:Rethinking the Inception Architecture for Computer Vision
CNN使各种CV任务解决方案的核心;2014年以来,非常深的网络(VGG)开始成为主流;增大模型的深度(VGG)或宽度(GoogLeNet)可以提升模型的性能,但需要足够多的标签数据用于训练,而且同时要考虑性能——不能一味的增大模型;本文探索如何通过适当的卷积分解和正则化来尽可能有效地利用增加的计算来扩大网络;大卷积分解为小卷积;不对称卷积;辅助分类器;在ILSVRC 2012分类挑战验证集上对我们的方法进行了基准测试;
2023-02-19 15:12:49
325
1
原创 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
【问题挑战】训练深度神经网络很复杂,因为在训练过程中,随着前一层的参数变化,每一层输入的分布都会发生变化;通过较低的学习率(lr)和仔细的参数初始化来解决,但会减慢训练速度,并且经常出现非线性饱和,最终导致深度网络难以训练(如sigmoid造成梯度消失问题);【解决方法】将这种现象称为内部协方差偏移(internal covariate shift),并通过对网络层的输入进行归一化(BN)来解决这个问题。
2023-02-16 14:10:53
322
原创 Inception V1/GoogLeNet:Going deeper with convolutions
本文提出一种叫Inception的深度卷积神经网络架构,该架构在2014年ImageNet大规模视觉识别挑战赛(ILSVRC14)分类和检测任务中刷新了指标。这种体系结构的主要特点是提高了网络内计算资源的利用率。通过精心设计的架构来增加网络的深度和宽度,同时减少参数和计算量(保持计算预算);Hebbian principle:赫布理论,把识别到的不同特征进行融合;multi-scale processing:多尺度处理,不同尺度卷积核并行处理;
2023-02-14 19:46:29
172
原创 VGG:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
本文研究了卷积网络深度对其在大规模图像识别设置中的准确性的影响。本文的主要贡献是使用非常小的(3 × 3)卷积滤波器的架构对深度增加的网络进行了全面评估,这表明通过将深度推至16-19个权重层,可以实现显著提升。卷积网络(ConvNets)最近在大规模图像和视频识别方面取得了巨大成功;2012 AlexNet ImageNet分类比赛冠军;2013 ZFNet 2013年 ILSVRC 图像分类竞赛获得冠军;2014 OverFeat ILSVR2013定位任务的冠军;
2023-01-25 16:48:50
212
原创 ZFNet:Visualizing and Understanding Convolutional Networks
大型卷积网络模型最近在ImageNet基准测试中展示了令人印象深刻的分类性能(Krizhevsky et al, 2012,就是AlexNet)。然而,人们还不清楚为什么它们表现得这么好,或者如何才能提高它们。在本文中,将解决这两个问题。本文介绍了一种新的可视化技术,可以深入了解中间特征层的功能和分类器的操作。自LeNet(LeCun et al, 1989)引入卷积网络以来,卷积网络在手写数字分类和人脸检测等任务中表现出出色的性能;后AlexNet又刷新了记录;
2023-01-20 22:15:54
226
原创 AlexNet:ImageNet Classification with Deep Convolutional Neural Networks
【任务】训练了一个大型的深度卷积神经网络,将ImageNet LSVRC-2010比赛中的120万张高分辨率图像分为1000个不同的类别;【效果】在测试数据上,我们实现了top-1和top-5的错误率分别为37.5%和17.0%;【网络】该神经网络有6000万个参数和65万个神经元,由5个卷积层组成,其中一些层后面是max-pooling层,还有3个完全连接层,最后是1000分类的softmax;【创新】为了使训练更快,使用了非饱和神经元ReLU和非常有效的GPU实现卷积运算;
2023-01-16 23:37:40
332
原创 LeNet:Handwritten Digit Recognition with a Back-Propagation Network
提出了一种反向传播网络在手写数字识别中的应用。数据的预处理是最少的,但是网络的架构是高度受限的,是专门为这项任务设计的。网络的输入由孤立数字的归一化图像组成。这种方法的错误率为1%,对美国邮政服务提供的邮政编码数字的拒收率约为9%。大型反向传播(BP)网络可以应用于真实的图像识别问题,而不需要大量复杂的预处理阶段。与之前关于该主题的大多数工作不同(Denker et al, 1989),学习网络直接使用图像,而不是特征向量,因此证明了BP网络处理大量低水平信息的能力。
2023-01-16 17:34:23
939
原创 MobileNetV3:Searching for MobileNetV3
提出下一代MobileNet;MobileNet V3通过结合NetAdapt算法辅助的硬件NAS和新颖的架构来优化到移动端的CPU上;(NAS:网络架构搜索,可参考论文"NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING",MobileNet V3是对MnasNet的改进,MnasNet是对NasNet的继承)本文搜索出两个网络架构:MobileNetV3-Large 和MobileNetV3-Small;
2023-01-13 17:08:17
566
原创 SENet:Squeeze-and-Excitation Networks
CNN的核心是卷积运算,它使网络能够通过融合每一层局部视野内的空间信息和通道信息来构建信息特征。前人很多关注空间信息的工作;本文关注通道关系,提出了一种新的架构,称为SE Block(Squeeze-and-Excitation block),通过显式建模通道之间的相互依赖性,自适应地重新校准通道特征响应;本文展示了这些SE block可以堆叠在一起,形成SENet架构,在不同的数据集上非常有效。CNN研究空间关系的工作背景;本文,研究了另一个方面:通道关系,引入SE block;
2023-01-12 20:17:01
603
原创 NASNet:Learning Transferable Architectures for Scalable Image Recognition
本文研究了一种直接在感兴趣的数据集上学习模型架构的方法。由于这种方法在数据集较大时成本较高,因此建议在小数据集上搜索架构构建block,然后将该block转移到更大的数据集上。本文贡献:设计了一个新的搜索空间(称为“NASNet搜索空间”),实现了可移植性,搜索出的网络架构称为"NASNet";本文工作受NAS启发,NAS或任何其他搜索方法直接应用于大型数据集(如ImageNet数据集),计算成本很高;本文建议在一个小型数据集上搜索,迁移到大型数据集,通过设计一个搜索空间来实现这种可移植性;
2023-01-04 22:38:06
264
原创 NAS:NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING NAS开山之作
神经网络难以设计;本文使用RNN作为controller来生成神经网络模型的描述,并用强化学习来训练RNN,以最大限度地提高在验证集上模型的准确性,从而生成高性能架构;如下图1所示,RNN作为controller生成网络架构A,以此生成的网络作为基础训练子网络,在相应的数据集上进行训练,计算精度R,计算梯度并最大化R进行反向传播更新梯度,作为奖励(reward)返回给RNN,以此来迭代优化(详细内容见强化学习);
2023-01-04 18:59:00
512
原创 不同CNN/DNN模型之间的比较:Benchmark Analysis of Representative Deep Neural Network Architectures
本文对目前图像识别领域提出的大多数DNNs(deep neural networks)进入了深入分析,从多个指标进行对比。指标:识别精度,模型复杂度,计算复杂度,内存使用,推理时间;这项研究有助于研究人员全面了解目前已经探索了哪些解决方案,以及未来哪些研究方向值得探索;从业者可以选择更适合实际部署和应用的资源限制的DNN架构。精度不会随着操作的数量的增加而增加,见图1;模型复杂度和精度直接不存在线性关系,见图1;期望的吞吐量为精度设置了上限,见图3;
2022-12-29 23:37:02
862
原创 Pytorch容器:nn.Sequential,ModuleList,ParameterList源码解析
nn.Sequential模块代码源码解析 nn.ModuleList nn.ModuleDict nn.ParameterList nn.ParameterDict
2022-12-27 16:39:51
676
原创 Pytorch nn.Module源码解析
官网介绍:https://pytorch.org/docs/stable/generated/torch.nn.Module.html;,任何类都应该继承这个nn.Module类并且实现__init__和forward两个方法(forward方法基类中不实现);Modules本身可以嵌套;
2022-12-26 16:51:45
1056
原创 Pytorch数据加载模块:Dataset,Sampler和DataLoader总结
官网教程示例:https://pytorch.org/tutorials/beginner/basics/data_tutorial.htmlPytorch加载数据三步走:Dataset:解析单个样本,把数据映射成(x,y)的形式;Sampler:提供一种遍历数据集所有元素索引的方式,有默认值;DataLoader:将当个样本变成训练时需要的batch形式;源码1.2 创建自己的Dataset定义自己的Dataset,继承Dataset类后,需要(必须)实现三个方法:示例:1.3 加载数据集1
2022-12-24 15:35:22
1209
原创 Self-Path:Self-supervision for Classification of Pathology Images with Limited Annotations
【挑战】得到病理学高分辨率的注释数据非常难。本文提出一种自监督CNN,称为Self-Path,利用没有标注的数据来学习病理图像中的泛化(generalizable) 和领域不变表示 (domain invariant representations)。Self-Path是一种多任务学习方法,主任务是分类,辅助任务(pretext task)是各自带有标签数据的自监督任务。pretext task:自监督学习中的概念;本文引入新的领域特定(3个)和非领域特定(5个)的自监督任务。
2022-12-23 13:59:10
400
2
原创 LoFTR:Detector-Free Local Feature Matching with Transformers
本文提出一种新的图像局部特征匹配方法(关键点匹配);与传统方法(特征检测-描述符-匹配)不同,本文首先在粗粒度上进行像素级密集匹配然后再细粒度进行优化。本文在Transformer中使用自注意层(self attention layer)和交叉注意层(cross attention layer)来获取两个图像的特征描述符;在室内数据集和室外数据集上实验,表明,LoFTR很大程度上优于现在的方法。现有的匹配方法大多数包含三个阶段:特征检测-特征描述-特征匹配;
2022-12-20 19:36:50
3972
原创 MnasNet:Platform-Aware Neural Architecture Search for Mobile
为移动端设计CNN的挑战在于平衡准确性和效率(延迟),手工设计模型非常困难(搜索空间非常大,无法达到全局最优,甚至不能达到局部最优);本文实现了一种自动移动端CNN搜索方法(automated Mobile Neural Architecture Search,MNAS),并且明确的将设备的运算延迟纳入目标函数,来达到准确性与延迟之间的平衡;不像以前的工作,只是用一些代理的指标来衡量延迟,如FLOPS,本文的方法通过在移动电话上执行模型直接测量现实世界的推理延迟。
2022-12-19 20:23:11
322
原创 MobileNetV2:Inverted Residuals and Linear Bottlenecks
①本文提出了一种新的移动端架构MobileNet V2,在当前移动端模型中最优;
2022-12-13 16:27:24
2229
原创 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
本文为移动端和嵌入式视觉应用程序提供了一类称为MobileNets的高效模型。MobileNets基于一种简化的架构,该架构使用深度可分离卷积(depth-wise separable convolutions)来构建轻量级深度神经网络;本文引入了两个简单的全局超参数,可以有效地在延迟(latency)和准确性(accuracy)之间进行权衡。这些超参数允许根据问题的约束条件为应用程序选择合适大小的模型;
2022-12-10 16:17:59
659
原创 GPU分布式训练
Ring AllReduce架构中没有server,都是worker,所有worker组成一个环形,每个worker和另外两个worker相连。特点:随着worker数量增加,模型的运行效率并不是线性提升的(worker的增加导致worker与server通信时长增加);server节点保存模型参数,如果有多个server节点会把模型参数保存多份到多个server上;worker负责使用server上的参数以及本worker上的数据计算梯度;特点:运行效率随着worker数量的增加线性增加;
2022-12-08 20:02:25
927
原创 Learning to segment images with classification labels
Learning to segment images with classification labels用分类标签来分割图像发表于:04 2021;发表期刊/会议:Medical Image Analysis (2021 IF:8.545)关键字:若监督 数字病理 图像分割论文:https://doi.org/10.1016/j.media.2020.101912代码:https://github.com/ozanciga/learning-to-segment
2022-12-04 16:17:16
496
原创 ViT:AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
在视觉上,注意力要么与CNN结合使用,要么用于替换CNN的某些组件。本文证明,这种对CNNs的依赖是不必要的,直接将Transformer应用于图像patch序列,可以很好的完成分类任务。Transformer已经成为自然语言处理(NLP)中的主要模型。在CV领域,CNN仍然占据主导地位。受NLP中Transformer的启发,本文尝试将标准Transformer直接应用于图像,并进行少量修改。【重要结论】
2022-12-01 20:16:30
192
原创 Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
【挑战】将Transformer应用到图像领域主要有两大挑战:视觉实体的规模更大,不同场景不一定适用;图像像素的分辨率比文本单词的分辨率更高,导致计算量大。【本文工作】为了解决这些问题,本文提出了一种用移位窗口(Shifted windows)计算的层级Transformer。【特点】移位窗口通过将自注意力限制到不重叠的局部窗口(local window),同时也允许跨窗口(cross-window)连接,从而带来更高的效率。计算机视觉中的建模一直由CNN主导。
2022-12-01 15:59:32
857
原创 Transformer:网络架构
传统one-hot编码标签的网络学习过程中,鼓励模型预测为目标类别的概率趋近1,非目标类别的概率趋近0,即最终预测的logits向量(logits向量经过softmax后输出的就是预测的所有类别的概率分布)中目标类别。这样,标签平滑后的分布就相当于往真实分布中加入了噪声,避免模型对于正确标签过于自信,使得预测正负样本的输出值差别不那么大,从而避免过拟合,提高模型的泛化能力。Transformer Attention is all you need 代码架构。来替换传统的ont-hot编码的标签向量。
2022-11-29 15:27:25
662
原创 Transformer:Attention Is All You Need
主要的序列转导模型基于包括编码器和解码器的复杂RNN和CNN。性能最好的模型还通过注意力机制连接编码器和解码器。我们提出了一种新的简单网络架构,即Transformer,它完全基于注意力机制,完全不用递归和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上更优,同时更易于并行化,并且需要的训练时间明显更少。RNN,固有的顺序性使得不能并行化,在较长的序列长度问题中,限制模型,效率低下;
2022-11-27 14:40:13
381
原创 Contrast Preserving Decolorization
褪色–将彩色图像转换为灰度图像的过程–是数字打印、风格化黑白摄影以及许多单通道图像处理应用中的基本工具。在本文中,提出了一种优化方法,旨在最大限度地保持原始颜色对比度。本文的主要贡献是缓解基于人类视觉系统的颜色映射的严格顺序约束,这使得能够使用双峰分布来约束空间像素差,并允许自动选择合适的灰度以保持原始对比度。定量和定性评价均证明了该方法的有效性。_图1:颜色到灰度的转换。本文提出了一种新的方法来保持与原始彩色图像的对比度。_图1(c)-(e)显示了最先进的彩色到灰度方法的结果。
2022-11-21 00:36:14
1066
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人