自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不要给自己设限,尝试更多可能(思所向 皆可往)

分享在学习过程中看过的知识以及遇到的问题,求知的路上将会越走越远

  • 博客(189)
  • 收藏
  • 关注

原创 深度学习500问——Chapter17:模型压缩及移动端部署(3)

Group convolution是将输入特征对维度c1分为g份,每个group对应的channel数为 c1/g,特征维度 H*W*c1/g,每个group对应对卷积核对维度也相应发生改变为 h1*w1*c1/g,共 c2/g个;如果在相同的FLOPs时,group卷积为了满足FLOPs会是使用更多的channels,可以提高模型的精度。,等式成立的条件是c1=c2,也就是输入特征通道数和输出特征通道数相等时,在给定FLOPs前提下,MAC达到取值的下界。卷积核的维度为 h1*w1*c1,共c2个;

2024-10-01 09:30:00 375

原创 深度学习500问——Chapter17:模型压缩及移动端部署(2)

大型网络通常是在量级较大的数据集上训练完成的,比如,在ImageNet上训练的模型具备对1000类物体的分类,但在一些具体场景的应用中,可能仅需要一个能识别其中几类的小型模型。目前,对各类深度网络压缩算法的评价是比较零碎的,侧重于和被压缩的大型网络在参数量和运行时间上的比较。深度网络的最终结果是由全部的权重参数共同作用形成的,目前,关于单个卷积核/卷积核权重的重要性的度量仍然是比较简单的方式。学生网络的结构构造目前仍然是由人工指定的,然而,不同的学生我网络结构的训练难度不同,最终能够达到的效果也有差异。

2024-09-30 10:47:42 518

原创 深度学习500问——Chapter17:模型压缩及移动端部署(1)

深度神经网络在人工智能的应用中,包括语音识别、计算机视觉、自然语言处理等各方面,在取得巨大成功的同时,这些深度神经网络需要巨大的计算开销和内存开销,严重阻碍了资源受限下的使用。本章总结了模型压缩、加速一般原理和方法,以及在移动端如何部署。

2024-09-29 15:42:54 541

原创 深度学习500问——Chapter15:异构计算,GPU和框架选型(2)

针对硬件厂商来说,比如NVIDIA,对各个操作系统的支持都是比较好的,比如WIndows系列,Linux系列,但是由于Linux系统对专业技术人员比较友好,所以目前几乎所有的深度学习系统构建都是基于Linux的,比较常用的系统如Ubuntu系列,CentOS系列等等。(3)熟悉Linux,不熟悉深度学习理论,毫无疑问,强烈推荐使用Linux系统,安装软件简单,工作效率高,总之一句话,如果不熟悉Linux,就先慢慢熟悉,最终还是要回归到Linux系统来构建深度学习系统。内存带宽通常相对固定,选择空间较小。

2024-09-26 18:08:15 949

原创 深度学习500问——Chapter15:异构计算,GPU和框架选型(1)

异构计算是基于一个更加朴素的概念,“异构现象”,也就是不同计算平台之间,由于硬件结构(包括计算核心和内存),指令集和底层软件实现等方面的不同而有着不同的特性。异构计算就是使用结合了两个或者多个不同的计算平台,并进行协同运算。比如,比较常见的,在深度学习和机器学习中已经比较成熟的架构:CPU和GPU的异构计算;此外还有比较新的Google推出的协处理器(TPU),根据目的而定制的ASIC,可编程的FPGA等也都是现在在异构计算中使用比较多的协处理器。

2024-09-26 13:47:27 1192

原创 深度学习500问——Chapter14:超参数调整(3)

一、优秀的数据预处理;二、合适的模型结构和功能;三、优秀的训练策略和超参数;四、合适的后处理操作;五、严格的结果分析。这几方面都对最终的结果有着举足轻重的影响,这也是目前的数据工程师和学者们的主要工作。但由于这每一方面都十分繁琐,尤其是在构建模型和训练模型上,而大部分情况下,这些工作有无须过深专业知识就能使用起来。所以AutoML主要的作用就是来帮助实现高效的模型构建和超参数调整。例如深度学习网络的架构搜索、超参数的重要性分析等等。

2024-09-24 17:27:50 1007

原创 深度学习500问——Chapter14:超参数调整(2)

微调(fine-tune),顾名思义指稍微调整参数即可得到优秀的性能,是迁移学习的一种实现方式。微调和从头训练(train from scratch)的本质区别在于模型参数的初始化,train from scratch通常指对网络各类参数进行随机初始化(当然随机初始化也存在一定技巧),随机初始化模型通常不具有任何预测能力,通常需要大量的数据或者特定域的数据进行从零开始的训练,这样需要训练到优秀的模型通常是稍困难的。

2024-09-22 14:51:38 618

原创 深度学习500问——Chapter14:超参数调整(1)

关于训练深度学习模型最难的事情之一是你要处理的参数的数量。无论是从网络本身的层宽(宽度)、层数(深度)、连接方式,还是损失函数的超参数设计和调试,亦或者是学习率、批样本数量、优化器参数等等。这些大量的参数都会有网络模型最终的有效容限直接或间接的影响。面对如此众多的参数,如果我们要一一对其优化调整,所需的无论是时间、资源都是不切实际的。结果证实一些超参数比其他的更为重要,因此认识各个超参数的作用和其可能会造成的影响是深度学习训练中必不可少的一项重要技能。超参数调整。

2024-09-17 11:55:22 1172

原创 深度学习500问——Chapter13:优化算法(3)

这个问题出现总会和模型过拟合表现很相似,即在训练集上能体现非常不错的性能,但在测试集上表现总是差强人意,区别在于如果遇到的是数据不匹配的问题,通常在用一批和训练集有着相同或者相似分布的数据上仍然能取得不错的结果。而不同类型的模型,在不同数据上的优化成本都可能不一样,所以在探索模型时需要尽可能挑选优化简单,训练效率更高的模型进行训练。​ 1、提高模型的结构,比如增加神经网络的层数,或者将简单的神经元单位换成复杂的 LSTM 神经元,比如在自然语言处理领域内,利用 LSTM 模型挖掘语法分析的优势。

2024-09-10 18:44:10 1118

原创 深度学习500问——Chapter13:优化算法(2)

训练、验证、测试集在机器学习领域是非常重要的三个内容。三者共同组成了整个项目的性能的上限和走向。训练集:用于模型训练的样本集合,样本占用量是最大的;验证集:用于训练过程中的模型性能评价,跟着性能评价才能更好的调参;测试集:用于最终模型的一次最终评价,直接反应了模型的性能。在划分上,可以分两种情况:1、在样本量有限的情况下,有时候会把验证集和测试集合并。实际中,若划分为三类,那么训练集:验证集:测试集=6:2:2;若是两类,则训练集:验证集=7:3。

2024-08-29 16:33:24 761

原创 深度学习500问——Chapter13:优化算法(1)

目前大部分的深度学习模型仍然需要海量的数据支持。例如ImageNet数据就拥有1400多万的图片,而现实生产环境中,数据集通常较小,只有几万甚至几百个样本。这时候,如何在这种情况下应用深度学习呢?

2024-08-24 10:05:43 1223

原创 RuntimeError: PytorchStreamReader failed reading zip archive: invalid header or archive is corrupted

模型推理过程中遇到错误:RuntimeError: PytorchStreamReader failed reading zip archive: invalid header or archive is corrupted。这个错误通常发生在尝试加载损坏的 PyTorch 模型文件时。这可能是由文件下载不完整、文件传输过程中损坏或者存储设备出现问题导致的原因。

2024-07-22 11:00:25 549

原创 Python基础知识——(005)

本章总结保留字是Python已经被赋予特定意义的一些单词,保留字严格区分大小写标识符可用来给变量、函数、类、模块和其他对象命名可以是字母(包含中文)、数字、下划线,第一个字符不能是数字不能是Python中的保留字标识符严格区分大小写以下划线开头的标识符有特殊意义,不能随便使用允许使用中文作为标识符,但不建议使用变量名=value整数类型的四种表示形式:二进制、八进制、十进制和十六进制浮点数可以使用内置函数round() 限定运算结果需要保留的小数位数。

2024-07-20 11:18:17 630

原创 Python基础知识——(004)

布尔类型用来表示 “真” 值或 “假” 值的数据类型在Python中使用标识符True或False表示布尔类型的值True表示整数1,False表示整数0

2024-07-11 17:30:59 602

原创 Python基础知识——(003)

编译器知道常量不会改变,这可以在编译时进行一些优化处理,如将常量内联到代码中,减少运行时的内存访问。:常量通常用于表示不会改变的值,比如圆周率π、一年的月份数量等。,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用。:如果程序中某个值不应该改变,将其定义为常量可以预防编程错误,例如误将其改变。:使用常量可以防止数据在程序运行中被意外修改,从而增加程序的可靠性。表示的数值是没有小数部分的数值,包含正整数、负整数和0。连续的字符序列,可以表示计算机所能识别的一切字符。

2024-07-09 17:43:28 1110

原创 Python基础知识——(002)

是指每行语句开始前的空白区域用来表示Python程序间的包含和层次关系类定义、函数定义、流程控制语句以及异常处理语句等行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束通常情况下采用4个空格作为一个缩进量程序设计语言又被称为编程语言计算机程序是使用编程语言组织起来的一组计算机指令计算机指令就是指挥机器工作的指示和命令编程语言可分为机器语言、汇编语言和高级语言采用编译方式执行的语言称为静态语言采用解释方式执行的语言称为脚本语言。

2024-07-09 13:53:37 702

原创 Python基础知识——(001)

Python语言的发明人——吉多·范罗苏姆(荷兰人)Python语言的设计非常优雅、明确、简单Python语言具有丰富和强大的库,能够把使用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

2024-07-08 18:05:52 910

原创 深度学习500问——Chapter12:网络搭建及训练(3)

所有的模型数据、计算参数都是暴露在外、可供读写的。AlexNet中用到了一些非常大的卷积核,比如11×11、5×5卷积核,之前人们的观念是,卷积核越大,感受野越大,看到的图片信息越多,因此获得的特征越好。主要的创新在于他的Inception,这是一种网中网(Network In Network)的结构,即原来的结点也是一个网络。因为如果所有的参数都是0,那么所有神经元的输出都将是相同的,那在back propagation的时候同一层内所有神经元的行为也是相同的,这可能会直接导致模型失效,无法收敛。

2024-06-21 09:30:00 1255

原创 深度学习500问——Chapter12:网络搭建及训练(2)

Caffe的全称应该是 Convolutional Architecture for Fast Feature Embedding,它是一个清晰、高效的深度学习框架,它是开源的,核心语言是C++,它支持命令行、Python和Matlab接口,它既可以在CPU上运行也可以在GPU上运行,它的license是BSD 2-Clause。

2024-06-20 16:01:27 665

原创 深度学习500问——Chapter12:网络搭建及训练(1)

如果我们运行的节点依赖某个placeholder,那我们必须给这个placeholder指定值,怎么指定代码里面很清楚,给关键字参数feed_dict传递一个字典即可,字典里的元素的key是placeholder对象,value是我们指定的值。符号式计算一般是先定义各种变量,然后建立一个数据流图,在数据流图中规定各个变量间的计算关系,最后需要对数据流图进行编译,但此时的数据流图还是一个空壳,里面没有任何实际数据,只有把需要运算的输入放进去后,才能在整个模型中形成数据流,从而形成输出值。

2024-06-16 09:15:00 1287

原创 深度学习500问——Chapter11:迁移学习(4)

深度网络的finetune也许是最简单的深度网络迁移方法。Finetune,也叫微调、fine-tuning,是深度学习中的一个重要概念。简而言之,finetune就是利用别人已经训练好的网络,针对自己的任务再进行调整。从这个意思上看,我们不难理解finetune是迁移学习的一部分。为什么需要已经训练好的网络?在实际的应用中,我们通常不会针对一个新任务,就去从头开始训练一个神经网络。这样的操作显然是非常耗时的。尤其是,我们的训练数据不可能像ImageNet那么大,可以训练出泛化能力足够强的深度神经网络。

2024-06-14 09:30:00 846 1

原创 深度学习500问——Chapter11:迁移学习(3)

作者提出了类内迁移(Intra-class Transfer)的思想,指出现有的绝大多数方法都只是学习一个全局的特征变换(Global DomainShift),而忽略了类内的相似性。这种方法的基本思想是,由于源域和目标域的数据概率分布不同,那么最直接的方式就是通过一些变换,将不同的数据分布的距离拉近。特征选择的基本假设是:源域和目标域中均含有一部分公共的特征,在这部分公共的特征,源域和目标域的数据分布是一致的。因此,此类方法的目标就是,通过机器学习方法,选择出这部分共享的特征,即可依据这些特征构建模型。

2024-06-13 09:30:00 872

原创 深度学习500问——Chapter11:迁移学习(2)

在最新的研究成果中,香港科技大学的Tan等人扩展了实例迁移学习方法的应用场景,提出 了传递迁移学习方法(Transitive Transfer Learning, TTL) [Tan et al.,2015] 和远域迁移学习 (Distant Domain Transfer Learning,DDTL) [Tan et al.,2017],利用联合矩阵分解和深度神经网络,将迁移学习应用于多个不相似的领域之间的知识共享,取得了良好的效果。而基于特征表示的迁移学习方法效果更好,是我们研究的重点。

2024-06-11 09:30:00 1234

原创 深度学习500问——Chapter11:迁移学习(1)

找到目标问题的相似性,迁移学习任务就是从相似性出发,将旧领域(domain)学习过的模型应用在新领域上。负迁移(Negative Transfer)指的是,在源阈上学习到的知识,对于目标域上的学习产生负面作用。数据问题:源域和目标域压根不相似,谈何迁移?方法问题:源域和目标域是相似的,但是,迁移学习方法不够好,没找到可迁移的成分。负迁移给迁移学习的研究和应用带来了负面影响。在实际应用中,找到合理的相似性,并且选择或开发合理的迁移学习方法,能够避免负迁移现象。

2024-06-09 09:30:00 1130 1

原创 Python代码——压缩整个文件夹

使用 Python 的 zipfile 模块来创建一个压缩文件夹。下面是一个示例代码,展示了如何将一个文件夹中的所有文件和子文件夹压缩成一个 ZIP 文件:这段代码会遍历指定文件夹内的所有文件和子文件夜,并将它们加入到一个新的 ZIP 文件中。表示使用了标准的 ZIP 压缩算法。

2024-06-08 16:42:22 605

原创 深度学习500问——Chapter10:强化学习(2)

Junhyuk等通过在传统的深度强化学习模型中加入外部的记忆网络部件和反馈控制机制, 提出反馈递归记忆Q网络(feedback recurrent memory Q-network, FRMQN)). FRMQN模型具备了一定的记忆与推理功能, 通过反馈控制机制,FRMQN整合过去存储的有价值的记忆和当前时刻的上下文状态, 评估动作值函数并做出决策. FRMQN初步模拟了人类的主动认知与推理能力, 并完成了一些高层次的认知任务. 在一些未经过训练的任务中,FRMQN模型表现出了很强的泛化能力.。

2024-06-06 09:30:00 959

原创 深度学习500问——Chapter10:强化学习(1)

强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决 decision making的问题,即自动进行决策,并且可以做连续决策。它主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。我们列举几个形象的例子:小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。

2024-06-04 17:05:55 763 1

原创 深度学习500问——Chapter09:图像分割(5)

Cityscapes 是驾驶领域进行效果和性能测试的图像分割数据集,它包含了5000张精细标注的图像和20000张粗略标注的图像,这些图像包含50个城市的不同场景、不同背景、不同街景,以及30类涵盖地面、建筑、交通标志、自然、天空、人和车辆等的物体标注。为了评价全景分割的质量,提出panoptic quality (PQ) 标准,将背景和物体的评价纳入一个完整的框架下。但是实例分割基于region的,允许重叠的segmentation,而全景分割和语义分割一样是像素级的label,不允许重叠标签的出现。

2024-05-25 09:30:00 1944

原创 深度学习500问——Chapter09:图像分割(4)

对训练图像中的每个像素做标记非常耗时,特别是对医学图像而言,完成对一个三维的CT或者MRI图像中各组织的标记过程需要数小时。图中灰色部分是原来的RCNN结合 ResNet or FPN的网络,下面黑色部分为新添加的并联 Mask层,这个图本身与上面的图也没有什么区别,旨在说明作者所提出的Mask RCNN方法的泛化适应能力:可以和多种RCNN框架结合,表现都不错。如果学习算法能通过对一些粗略标记过的数据集的学习就能完成好的分割结果,那么对训练数据的标记过程就很简单,这可以大大降低花在训练数据标记上的时间。

2024-05-23 15:34:01 1038

原创 深度学习500问——Chapter09:图像分割(3)

其实就是U-Net 和FPN的思想,在输入图像和前四个最大池化层的输出上附加了两层的MLP,第一层是 128 个 3x3的卷积,第二层是 128个 1x1 卷积。论文受到Spatial Pyramid Pooling(SPP)的启发,提出了一个类似的结构,在给定的输入上以不同采样率的空洞卷积进行采样,相当于以多个比例捕捉图像的上下文,称为ASPP(atrous spatial pyramid pooling)模块。简单的说就是这种结构能在更少参数更少计算量的情况下学到同样的信息。C就是本文采取的方法。

2024-05-22 15:03:49 963

原创 深度学习500问——Chapter09:图像分割(2)

因为上采样可以补足一些图片的信息,但是信息补充的肯定不完全,所以还需要与左边的分辨率比较高的图片相连接起来(直接复制过来再裁剪到与上采样图片一样大小),这就相当于在高分辨和更抽象特征当中做一个折中,中,因为随着卷积次数增多,提取的特征也更加有效,更加抽象,上采样的图片是经历多次卷积后的图片,肯定是比较高效和抽象的图片,然后它与左边不怎么抽象但更高分辨率的特征图片进行连接)。解码网络使用保存的最大池化索引上采样,得到稀疏的特征图,将特征图与可训练的解码滤波器族卷积得到致密的特征图。(1)使用全卷积神经网络。

2024-05-20 16:12:15 917 1

原创 深度学习500问——Chapter09:图像分割(1)

但是在进入全连接层时,feature map(假设大小为nxn)要拉成一条向量,而向量中每个元素(共nxn个)作为一个结点都要与下一个层的所有结点(假设4096个)全连接,这里的权值个数是4096 x n x n ,而我们知道神经网络结构一旦确定,它的权值个数都是固定的,所有这个n不能变化,n是conv5的outputsize,所以层层向回看,每个outputsize都要固定,那每个inputsize都要固定,因此输入图片大小要固定。反卷积层也是卷积层,不关心input的大小,滑窗卷积后输出output。

2024-05-16 20:34:33 847

原创 深度学习500问——Chapter08:目标检测(10)

COCO的检测任务共含有80个类,在2014年发布的数据规模分 train/val/test 分别为 80k/40k/40k,学术界较为通用的划分是使用train和35k的val子集作为训练集(trainval35k),使用剩余的val作为测试集(minival),同时向官方的evaluation server提交结果(test-dev)。Labelbox 是一家为机器学习应用程序创建、管理和维护数据集的服务提供商,其中包含一款部分免费的数据标签工具,包含图像分类和分割,文本,音频和视频注释的接口,其中。

2024-05-16 09:45:00 1069

原创 深度学习500问——Chapter08:目标检测(9)

而NIPS的对抗攻击大赛很多从神经网络的学习策略下手,进行梯度攻击,更加偏向于人为的攻击了,对于普适的检测性能提高意义反而不大,更强调安全需求高的场合。还有尝试将RGB映射到其他的色彩空间进行学习,YUV,CMY,HSV等。组合的增强方式往往是连续变化的,导致数据集的容量会迅速扩大,这对于小数据集领域来说容易发生过拟合,所以需要设计合理的搜索算法设计恰当的训练数据集。谷歌最早做的自学习增强方法,走的NAS的思路RL+RNN搜索增强空间,还有后来最近发的检查增强也是大同小异,基本就是换汤不换药,问题在于。

2024-05-15 15:23:07 938

原创 深度学习500问——Chapter08:目标检测(8)

为了检测不同大小的人脸,开始需要构建图像金字塔,先经过pNet模型,输出人脸类别和边界框(边界框的预测为了对特征图映射到原图的框平移和缩放得到更准确的框),将识别为人脸的框映射到原图框位置可以获取patch,之后每一个patch通过resize的方式输入到rNet,识别为人脸的框并且预测更准确的人脸框,最后rNet识别为人脸的的每一个patch通过resize的方式输入到oNet,跟rNet类似,关键点是为了在训练集有限情况下使模型更鲁棒。因为模型输出有概率值,一般会优先选择概率小的框删除。

2024-05-13 09:30:00 698

原创 AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘

修改图片大小的时候,代码报错:AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'在pillow的10.0.0版本中,ANTIALIAS方法被删除了。

2024-05-12 17:25:28 1220

原创 ImportError: cannot import name ‘compare_mse‘ from ‘skimage.measure‘

在复现模型代码的时候遇到错误:ImportError: cannot import name 'compare_mse' from 'skimage.measure' 。这是由于 scikit-image 的版本问题,由于scikit-image版本升级后就修改了库函数。

2024-05-10 10:03:11 440

原创 AttributeError: module ‘numpy‘ has no attribute ‘int‘.

复现代码过程中遇到错误:AttributeError: module 'numpy' has no attribute 'int'.这是因为在Numpy 1.2.0版本中就已经弃用了这个用法:np.int。

2024-05-04 16:50:17 647 1

原创 深度学习中损失函数和激活函数的选择

本篇博客的目的是根据业务目标,为大家提供关于在构建神经网络时,如何根据需求选择合适的最终层激活函数和损失函数的指导和建议。神经元和激活函数介绍你需要解决什么问题?和所有机器学习一样,业务目标决定了你应该如何评估是否成功。你想预测数值吗?例如:预测产品的合适价格,或预测每天的销售数量。如果是这样,你需要用到“回归:预测数值”部分的知识。你想预测分类结果吗?比如,你想知道图片中有什么物体,或者对话是关于什么主题的。

2024-05-04 14:33:26 850

原创 深度学习500问——Chapter08:目标检测(7)

RFBNet有哪些创新点1. 提出RF block(RFB)模块RFBNet主要想利用一些技巧使得轻量级模型在速度和精度上达到很好的trade-off的检测器。灵感来自人类视觉的感受野结构Receptive Fields(RFs),提出了新奇的RF block(RFB)模块,来验证感受野尺寸和方向性的对提高有鉴别器鲁棒特征的关系。RFBNet是以主干网络(backbone)为VGG 16的SSD来构建的,主要是在Inception的基础上加入了dilated卷积层(dilated convolution),

2024-05-04 13:57:14 1697

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除