深度学习
文章平均质量分 92
羞儿
和我一起学习吧,有问题请积极讨论。费曼学习法,论证,整合,再论证,再整合。
展开
-
跟着DW学习大语言模型-通过实践案例学习使用langchain构建基于LLM的RAG应用,实现信息到知识的跨越。实践中学习构建流程,结合需求进行工程设计,打造专属AI,赋能各种场景
在对知识库文本进行分割和向量化后,就需要定义一个向量数据库用来存放文档片段和对应的向量表示了,在向量数据库中,数据被表示为向量形式,每个向量代表一个数据项。定义向量库对应的代码也在。RAG模型通过检索相关文档来增强其回答生成的上下文,使得生成的答案不仅仅依赖于模型训练时的知识,还结合了额外的、具体问题相关的信息。第二步,向量化(embedding),这是将文本、图像、音频和视频等转化为向量矩阵的过程,也就是变成计算机可以理解的格式,embedding模型的好坏会直接影响到后面检索的质量,特别是相关度。原创 2024-06-30 13:03:50 · 425 阅读 · 0 评论 -
跟着DW学习大语言模型-使用Streamlit构建一个RAG应用
现在我们已经实现了通过上传本地知识文档,然后将他们保存到向量知识库,通过将查询问题与向量知识库的召回结果进行结合输入到 LLM 中,我们就得到了一个相比于直接让 LLM 回答要好得多的结果。将介绍 LangChain 中的储存模块,即如何将先前的对话嵌入到语言模型中的,使其具有连续对话的能力。例如,我们向 LLM 提问一个问题(answer),RAG 从各种数据源检索相关的信息,并将检索到的信息和问题(answer)注入到 LLM 提示中,LLM 最后给出答案。另外,也有助于缓解大模型的“幻觉”问题。原创 2024-06-26 23:39:02 · 824 阅读 · 0 评论 -
跟着DW学习大语言模型-什么是知识库,如何构建知识库
LangChain 可以直接使用 OpenAI 和百度千帆的 Embedding,同时,我们也可以针对其不支持的 Embedding API 进行自定义,例如,我们可以基于 LangChain 提供的接口,封装一个 zhipuai_embedding,来将智谱的 Embedding API 接入到 LangChain 中。:是一个开源向量数据库。文档分割:由于单个文档的长度往往会超过模型支持的上下文,导致检索得到的知识太长超出模型的处理能力,因此,在构建向量知识库的过程中,我们往往需要对文档进行分割,原创 2024-06-24 23:31:53 · 1226 阅读 · 0 评论 -
跟着DW学习大语言模型-大模型开发中prompt技术与艺术,学习通义langchain构建应用
为了更好帮助读者理解大模型Agent调用的原理,下面的代码是我们自己定义了一个简单的工具类 SearchTool 类,而不是继承自langchain的 BaseTool。从这里我们看到,LangChain方法主要思路是通过详细定义的Prompt让大模型反复思考“大模型目前获得的信息是否可以回答用户的问题”,如果不能解答用户的问题,大模型应该使用何种工具;当取值较高接近 1 时,预测的随机性会较高,所有词被选择的可能性更大,会产生更有创意、多样化的文本,更有可能生成不寻常或意想不到的词。原创 2024-06-22 21:34:10 · 1068 阅读 · 0 评论 -
跟着DW学习大语言模型-了解一些历史渊源
开发大模型相关应用,其技术核心点虽然在大语言模型上,但一般通过调用 API 或开源模型来实现核心的理解与生成,通过 Prompt Enginnering 来实现大语言模型的控制,因此,虽然大模型是深度学习领域的集大成之作,大模型开发却更多是一个。作为重要的研究方向之一,语言模型得到了学术界的广泛研究,从早期的统计语言模型和神经语言模型开始,发展到基于Transformer的预训练语言模型。ChatGPT 从本质上来说是一个 LLM 应用,是基于基座模型开发出来的,与基座模型有本质的区别。原创 2024-06-18 23:44:51 · 1077 阅读 · 0 评论 -
知识蒸馏,需要合适的教师模型,学生模型,蒸馏数据,损失函数,训练策略,让小模型有大模型的知识
知识蒸馏是一种将知识从一个神经网络(教师)转移到另一个神经网络(学生)的技术,如需更深入地了解知识蒸馏,建议阅读[。这一过程有多种形式,可分为以下几类响应知识蒸馏: 使用 divergence 损失(即使用 KL 散度)训练输出类概率分布,使其与教师概率分布相匹配。特征知识蒸馏: 训练学生模型的内部特征,使其与教师模型的内部特征直接匹配(即:使用均方误差)。关系知识蒸馏: 训练教师模型中特征的相对分布,使之与学生模型中特征的相对分布相匹配。原创 2024-05-10 18:47:13 · 1169 阅读 · 0 评论 -
目标检测标签分配策略,难样本挖掘策略
但是作者采用了一种更加优雅的实现方式,其采用了一种可以直接插入当前anchor-base网络中进行anchor动态调整的做法,而不是替换掉原始网络结构,属于锦上添花,从此anchor-base就变成了anchor-base混合anchor-free了(取长补短),这就是一个不错的进步。在选择难负样本时,需要遵循一定的原则。只看图示就很好理解了,对于任何一个类别的样本,本质上是希望学习的概率为1,当预测输出接近1时候,该样本loss权重是很低的,当预测的结果越接近0,该样本loss权重就越高。原创 2024-04-07 16:21:51 · 1132 阅读 · 1 评论 -
深度学习八股文
Bert旨在通过联合左侧和右侧的上下文,从未标记文本中预训练出一个深度双向表示模型。因此,BERT可以通过增加一个额外的输出层来进行微调,就可以达到为广泛的任务创建State-of-the-arts 模型的效果,比如QA、语言推理任务。Bert的构成:由12层Transformer Encoder构成。bert的基本任务:mask language model 和 next sentence predict,mask language model的遮盖⽅式:选择15%的token进⾏遮盖,再选择其中80%进原创 2024-04-01 11:21:03 · 3391 阅读 · 5 评论 -
pytorch模型转onnx格式,编写符号函数实现torch算子接口和onnx算子的映射,新建简单算子--模型部署记录整理
对于深度学习模型来说,模型部署指让训练好的模型在特定环境中运行的过程。相比于软件部署,模型部署会面临更多的难题:为了让模型最终能够部署到某一环境上,开发者们可以使用来定义网络结构,并。之后,模型的结构和参数会被转换成一种只描述网络结构的中间表示,一些针对网络结构的优化会在中间表示上进行。最后,用面向硬件的高性能编程框架(如 CUDA,OpenCL)编写,能高效执行深度学习网络中算子的推理引擎会。这一条流水线解决了模型部署中的两大问题:使用对接深度学习框架和推理引擎的中间表示,开发者不必担心如何在新环境中运行原创 2024-03-14 01:19:41 · 1235 阅读 · 0 评论 -
关于yolov8文档的记录,补充一些整理的知识点
所谓平滑锯齿操作就是在Recall轴上,对于每个阈值θ计算出的Recall点,看看它的右侧(包含它自己)谁的Precision最大,然后这个区间都使用这个Precision值,Precision和Recall之间的此消彼长的矛盾关系, 既然一个模型的precision和recall是此消彼长的关系,不可能两个同时大,那怎么判断哪个模型更优呢?自蒸馏策略:为了提高 YOLOv6 较小模型的性能,我们采用了一种新的自蒸馏策略,在训练过程中增强辅助回归分支,在推理过程中去除辅助回归分支,以避免速度明显下降。原创 2024-03-11 23:25:53 · 976 阅读 · 0 评论 -
认识OCR,从文字检测到文字识别,从任务定义到下游任务,从形态学方法到深度学习
图灵测试是人工智能是否真正能够成功的一个标准,“计算机科学之父”、“人工智能之父”英国数学家图灵在1950年的论文《机器会思考吗》中提出了图灵测试的概念。即把一个人和一台计算机分别放在两个隔离的房间中,房间外的一个人同时询问人和计算机相同的问题,如果房间外的人无法分别哪个是人,哪个是计算机,就能够说明计算机具有人工智能。1981年的诺贝尔将颁发给了David Hubel和Torsten Wiesel,以及Roger Sperry。他们发现了人的视觉系统处理信息是分级的。从视网膜(Retina)出发,经过低级原创 2024-01-15 11:21:23 · 1362 阅读 · 1 评论 -
【读点论文】An End-to-End Trainable Neural Network for Image-based Sequence Recognition...将文字识别和文字检测结合在一起
基于图像的序列识别一直是计算机视觉领域一个长期的研究课题。在本文中,我们研究了场景文本识别问题,这是基于图像的序列识别中最重要和最具挑战性的任务之一。提出了一种集特征提取、序列建模和转录于一体的神经网络结构。与以往的场景文本识别系统相比,本文提出的体系结构具有四个特点:(1)与大多数现有算法的组件单独训练和调优不同,它是端到端可训练的。(2)自然处理任意长度的序列,不涉及字符分割或水平尺度归一化。(3)它不局限于任何预定义的词典,在无词典和基于词典的场景文本识别任务中都取得了显著的成绩。原创 2024-01-14 15:44:48 · 1082 阅读 · 0 评论 -
了解一下InternLM3
在平台中选择 A100(1/4) 的配置,如下图所示镜像选择,接下来打开刚刚租用服务器的进入开发机,并且打开其中的终端开始环境配置、模型下载和运行demo。入开发机后,在页面的左上角可以切换JupyterLab终端和VScode,并在终端输入bash命令,进入conda环境。如下图所示:进入conda环境之后,使用以下命令从本地克隆一个已有的的环境,,需要等3分钟左右把shareInternLM-r 选项表示递归地复制目录及其内容也可以使用modelscope中的。原创 2024-01-07 18:47:44 · 1186 阅读 · 0 评论 -
了解一下InternLM2
大模型的优势在于其能够捕捉和理解数据中更为复杂、抽象的特征和关系。通过大规模参数的学习,它们可以提高在各种任务上的泛化能力,并在未经过大量特定领域数据训练的情况下实现较好的表现。然而,大模型也面临着一些挑战,比如巨大的计算资源需求、高昂的训练成本、对大规模数据的依赖以及模型的可解释性等问题。是一个轻量级、开源的基于大语言模型的智能体(agent)框架,支持用户快速地将一个大语言模型转变为多种类型的智能体,并提供了一些典型工具为大语言模型赋能。是一个开源的轻量级训练框架,旨在支持大模型训练而无需大量的依赖。原创 2024-01-07 17:48:37 · 1219 阅读 · 0 评论 -
了解一下InternLM1
此外,ZeRO1.5还采用了新的算法来压缩和存储模型参数,可以在保持模型性能的同时,进一步减少内存和显存的使用。同时,InternLM-7B完全可商用,支持8k语境窗口长度,中文超ChatGPT,训练和评估动态反馈调整,基于LMdeploy部署(基于Fast Transform研发)快速加载大模型,比Transform快到2~3倍,Hybrid Zero提速 ,开放OpenCompass 评测标准。多阶段的渐进式训练:大模型的渐进式训练可以通过多个阶段进行,每个阶段的目标是逐步提高模型的性能。原创 2024-01-04 23:12:08 · 921 阅读 · 0 评论 -
白嫖国内算力资源,AIStudio。谁不想完成一次算法竞赛的结果提交呢!paddledet和mmdet真的很像,上手很快
参赛者可以基于该数据集进行算法的训练和测试,并结合数据集的独特特点进行算法设计,以期达到更好的检测效果和性能。设置–match_metric表示子图结果重组去重的度量标准,默认是ios表示交小比(两个框交集面积除以更小框的面积),也可以选择交并比iou(两个框交集面积除以并集面积),精度效果因数据集而而异,但选择ios预测速度会更快一点。同时,子图结果重组去重的度量标准用交并比在该数据集上表现更好,猜测可能是因为,数据集的目标大小差异较大,对于中大型目标,去重标准如果用交小比,在评估效果上,会比较吃亏。原创 2023-07-21 16:15:32 · 279 阅读 · 0 评论 -
【模型复现】-alexnet,nn.Sequential顺序结构构建网络
优雅的定理证明了许多分类器的性质。全连接:此层的全连接实际上是通过卷积进行的,输入6×6×256,4096个6×6×256的卷积核,扩充边缘padding = 0, 步长stride = 1, 因此其FeatureMap大小为(6-6+0×2+1)/1 = 1,即1×1×4096;卷积:输入13×13×256,384个3×3×256的卷积核, 扩充边缘padding = 1,步长stride = 1,因此其FeatureMap大小为(13-3+1×2+1)/1 = 13,即13×13×384;原创 2023-03-06 08:27:42 · 291 阅读 · 0 评论 -
【留点代码】将transformer运用到目标检测上来,通过debug了解模型的模型运算流程
debug调试detr_demo,留点代码给自己原创 2022-07-25 20:09:25 · 592 阅读 · 0 评论 -
【知识存储】用于深度学习研究的 ☆ 概率论和数理统计☆ 基础理论知识,用时查阅,灵活运用,很基础很重要
概率论与统计学在深度学习领域核心的理论支撑。AI算法或模型,都是以概率论与统计学为理论依据,并且才经得住考证。在现实世界中的客观事实,都呈现某种规律性,则可通过概率论与统计学进行总结表述,而机器学习或深度学习,则是尝试发现该规律,即统计规律。通常分为两大方向:频率派与贝叶斯派,而这两大派。频率派认为,模型的参数虽然未知,但却是客观存在的固定值。而贝叶斯派认为,模型的参数未知,但是参数也可被视为一个随机变量,其本身也应该有一个分布,因此贝叶斯派会假定参数服从一先验分布,然后通过观测数据来计算参数的后验分布。原创 2023-07-14 08:59:40 · 513 阅读 · 0 评论 -
【知识存储】用于深度学习研究的 ☆ 线性代数 ☆ 基础理论知识,用时查阅,灵活运用,很基础很重要
深度学习是关于数据的,我们需要将数据以矩阵或更高维向量的形式表示并对它们执行操作来训练我们的深度网络。所以更好地理解矩阵运算和线性代数将帮助您对深度学习算法的工作原理有更好的理解。 这就是为什么线性代数可能是深度学习中最重要的数学分支。所有深度学习操作都使用矩阵计算来表示。 学习有关如何在矩阵和张量中表示数据的基础知识,将使您对底层的理论有更好的理解。机器学习和深度学习建立在数学原理和概念之上,因此AI学习者需要了解基本数学原理。在模型构建过程中,我们经常设计各种概念,例如维数灾难、正则化、二进制、多分类等原创 2023-07-13 18:05:52 · 395 阅读 · 0 评论 -
【知识存储】用于深度学习研究的 ☆ 高等数学 ☆ 基础理论知识,用时查阅,灵活运用,很基础很重要
在入门深度学习目标检测领域之前,先给大家补点数学知识,因为无论是深度学习还是机器学习,背后都是有一些数学原理和公式推导的,所以掌握必备的数学知识必不可少,下面会给大家简单科普下常用的数学知识有哪些~数据科学需要一定的数学基础,但仅仅做应用的话,如果时间不多,不用学太深,了解基本公式即可,遇到问题再查吧。一些数学基础概念,建议大家收藏后再仔细阅读,遇到不懂的概念可以直接在这里查~原创 2023-07-12 16:22:46 · 773 阅读 · 0 评论 -
你可以对AI中台有所了解
一个AI中台覆盖从数据管理、数据标注、模型开发、部署上线到运营管理的AI能力研发与应用全生命周期建设和管理**。作为企业AI能力的生产、应用和集中化管理平台,AI中台包括**智能数据、模型开发、模型中心、预测服务、AI集市和平台管理等部分。针对图像分类/ 物体检测/ 图像分割数据集,在“数据集管理”页面,选择操作列中的“发布”。数据集发布成功后,点击操作列中的“去训练”, 跳转到“全功能开发” 或 “零代码开发”中训练模型。或者用户也可以直接至全功能开发” 或 “零代码开发”菜单中,选择已发布的数据原创 2023-07-04 21:56:10 · 1432 阅读 · 0 评论 -
卷积神经网络推理特征图可视化查看,附录imagenet类别和编号对应查询表。通过观察法进行深度学习可解释研究
CNN模型虽然在图像处理上表现出非常良好的性能和准确性,但一直以来都被认为是一个黑盒模型,人们无法了解里面的工作机制。 针对这个问题,研究人员除了从理论层面去寻找解释外,也提出了一些可视化的方法直观地理解CNN的内部机理,毕竟眼见为实,看到了大家就相信了。一种是基于Deconvolution, 另一种则是基于反向传播的方法。我们主要使用代码实现基于反向传播的方法的可视化。基于Deconvolution基于Backpropagation的方法Guided-Backpropagation,这个方法来自于ICLR原创 2023-04-19 10:53:32 · 485 阅读 · 1 评论 -
【深一点学习】我用CPU也能跟着沐神实现单发多框检测(SSD),从底层了解目标检测任务的实现过程,需要什么样的方法调用。《动手学深度学习》Yes,沐神,Yes
目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型[1611.06612] RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation (arxiv.org):(1)two-stage方法,如R-CNN系算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法的优势是准确度原创 2023-04-11 15:16:24 · 679 阅读 · 0 评论 -
在多个尺度下生成不同数量和不同大小的锚框,从而在多个尺度下检测不同大小的目标。附加调通《动手学深度学习》课堂数据加载代码,为目标检测实战作准备
标签的小批量的形状为(批量大小,m,5),其中是数据集的任何图像中边界框可能出现的最大数量。举个例子,假设输入图像的高和宽分别为500像素和700像素,如果以每个像素为中心生成5个不同形状的锚框,那么一张图像上则需要标注并预测175多万个锚框(500*700*5)。我们先关注小目标的检测。实验的第一个尺度上,给定10个(通道数量)的特征图,我们生成了16组锚框,每组包含3个中心相同的锚框。对感受野的定义,特征图在相同空间位置的个单元在输入图像上的感受野相同: 它们表征了同一感受野内的输入图像信息。原创 2023-04-10 22:23:22 · 363 阅读 · 0 评论 -
【深一点学习】目标检测任务。从人工标注框开始,经过目标框的转换(xyxy,CxCyhw),到回归于分类综合促成的目标检测结果和非极大值抑制的后处理方法的实现,原理分析,代码实践
在目标检测的训练集中,很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或物体检测。目标检测在多个领域中被广泛使用。例如,在无人驾驶里,我们需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍的位置来规划行进线路。机器人也常通过该任务来检测感兴趣的目标。安防领域则需要检测异常目标,如歹徒或者炸弹。原创 2023-04-10 19:43:41 · 268 阅读 · 0 评论 -
【模型复现】densenet,增加残差结构连接,复用特征图的角度降低了计算量还提升了精度,transition_block压缩特征图
相比ResNet,DenseNet提出了一个更激进的密集连接机制:即互相连接所有的层,具体来说就是每个层都会接受其前面所有层作为其额外的输入。下图为DenseNet的密集连接机制。可以看到,ResNet是每个层与前面的某层(一般是2~3层)短路连接在一起,。而在DenseNet中,每个层都会与前面所有层在channel维度上连接(concat)在一起(这里各个层的特征图大小是相同的,后面会有说明),并作为下一层的输入。对于一个 L 层的网络,DenseNet共包含2LL1。原创 2023-04-09 15:03:10 · 943 阅读 · 0 评论 -
【模型复现】resnet,使用net.add_module()的方法构建模型。小小的改进大大的影响,何大神思路很奇妙,基础很扎实
从经验来看,网络的深度对模型的性能至关重要,当增加网络层数后,网络可以进行更加复杂的特征模式的提取,所以当模型更深时理论上可以取得更好的结果。但是更深的网络其性能一定会更好吗?实验发现深度网络出现了退化问题(Degradation problem):网络深度增加时,网络准确度出现饱和,甚至出现下降。在中表明56层的网络比20层网络效果还要差。这不会是过拟合问题,因为56层网络的训练误差同样高。我们知道深层网络存在着梯度消失或者爆炸的问题,这使得深度学习模型很难训练。原创 2023-04-09 14:56:18 · 717 阅读 · 0 评论 -
【模型复现】GoogLenet,并行设计模块多尺度获取特征,模型堆叠更深层
[v1] Going Deeper with Convolutions, 6.67%[v2] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, 4.8%[v3] Rethinking the Inception Architecture for Computer Vision, 3.5% [v4] Inception-v4, Inception-ResNet and原创 2023-04-08 08:47:57 · 602 阅读 · 0 评论 -
【模型复现】Network in Network,将1*1卷积引入网络设计,运用全局平均池化替代全连接层。模块化设计网络
全连接层参数量是非常庞大的,模型通常会容易过拟合,针对这个问题,Hinton提出Dropout方法来提高泛化能力,但是全连接的计算量依旧很大。基于此,论文提出。原创 2023-04-07 22:02:47 · 576 阅读 · 1 评论 -
【模型复现】VGGnet,经典的模块化构建网络,网络结构清晰明了,具体思路建议细看论文
AlexNet在LeNet的基础上增加了3个卷积层。但AlexNet作者对它们的卷积窗口、输出通道数和构造顺序均做了大量的调整。虽然AlexNet指明了深度卷积神经网络可以取得出色的结果,但并没有提供简单的规则以指导后来的研究者如何设计新的网络。VGG,它的名字来源于论文作者所在的实验室Visual Geometry Group。VGG提出了可以通过重复使用简单的基础块来构建深度模型的思路。VGG16相比AlexNet的一个改进是。原创 2023-04-07 14:42:33 · 425 阅读 · 0 评论 -
模型涨点的思路,深度学习训练的tricks-计算机视觉
模型涨点尽力而为,AI performance = data(70%) + model(CNN、RNN、Transformer、Bert、GPT 20%) + trick(loss、warmup、optimizer、attack-training etc 10%) 记住:数据决定了AI的上线,模型和trick只是去逼近这个上线,还是那句老话:garbage in, garbage out。原创 2023-03-13 15:02:38 · 1494 阅读 · 0 评论 -
【深一点学习】自己实现一下卷积和池化操作,理解超参数意义,理清数学计算方式
同卷积层一样,池化层每次对输入数据的一个固定形状窗口(又称池化窗口)中的元素计算输出。在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组中相应位置的元素。步幅可以减小输出的高和宽,例如输出的高和宽仅为输入的高和宽的1/n(n为大于1的整数)。现在来看一下学习到的卷积核的参数。在做互相关运算时,每个输出通道上的结果由卷积核在该输出通道上的核数组与整个输入数组计算而来。原创 2023-03-05 16:44:26 · 428 阅读 · 0 评论 -
加载预训练模型,模型微调,在自己的数据集上快速出效果
Pytorch有很多方便易用的包,今天要谈的是torchvision包,它包括3个子包,分别是: torchvison.datasets ,torchvision.models ,torchvision.transforms ,分别是预定义好的数据集(比如MNIST、CIFAR10等)、预定义好的经典网络结构(比如AlexNet、VGG、ResNet等)和预定义好的数据增强方法(比如Resize、ToTensor等)。保存和加载模型的参数, 优点是速度快,占用的磁盘空间少, 是最常用的模型保存方法。原创 2023-02-26 15:55:36 · 5084 阅读 · 1 评论 -
数据增强,扩充了数据集,增加了模型的泛化能力
在计算机视觉中,典型的数据增强方法有翻转(Flip),旋转(Rotat ),缩放(Scale),随机裁剪或补零(Random Crop or Pad),色彩抖动(Color jittering),加噪声(Noise)图像本身的变化将有助于模型对未见数据的泛化,从而不会对数据进行过拟合。以上整理的都是我们常见的数据增强技术,torchvision中还包含了很多方法,可以在他的文档中找到:https://pytorch.org/vision/stable/transforms.html。原创 2023-02-25 10:20:17 · 5019 阅读 · 0 评论 -
新建一个虚拟环境来管理自己的pytorch环境
conda创建虚拟环境和pip创建虚拟环境不同,pip建立的虚拟环境会直接在当前目录下生成一个虚拟环境的目录,激活虚拟环境也需要指定这个目录才行。通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,”的python项目运行环境,使用虚拟环境可以给每一个项目配置一个虚拟环境,这样使得项目对应使用的第三方包很明确,迁移时只需导出相关依赖清单requirements就可以了。原创 2023-02-24 16:55:15 · 598 阅读 · 0 评论 -
anchor box只是先验知识,bounding box是一种过程,ground truth才是标准答案,
网络接收到的真值为这296个anchor box是否为背景的分类信息(如果包含物体,则分离为物体类别)和每个anchor到目标物体bounding box的偏移量(含糊框和背景框的偏移量为0),网络的输出为296个框的偏移量和分类信息。例如,在输出特征图上(0, 0)的点在输入图片上的对应位置为(2, 2), 网络的输出特征维度为3 * 3 * 84 ( = 3 * 3 * 6 * 14),则输出特征图上点(0, 0)处的84个通道对应的值为输入图(2, 2)位置上6个锚框的偏移量和分类值。原创 2023-02-23 21:32:24 · 1580 阅读 · 3 评论 -
混合精度训练,FP16加速训练,降低内存消耗
其主要思路是把神经网络训练过程中产生的激活activations、梯度 gradients、中间变量等数据,在训练中都利用FP16来存储,同时复制一份FP32的权重参数weights,用于训练时候的更新。张量核心的普及:硬件的发展同样也推动着模型计算的加速,随着Nvidia张量核心(Tensor Core)的普及,16bit计算也一步步走向成熟,低精度计算也是未来深度学习的一个重要趋势。原因是梯度的值太小,使用FP16表示会造成了数据下溢出(Underflow)的问题,导致模型不收敛。原创 2023-02-22 17:14:32 · 2520 阅读 · 0 评论 -
【归一化小记】,batchnorm,layernorm,IN,GN,分布式归一化...
加快收敛:梯度下降过程中,每一层的权重矩阵W和偏置b都会不断变化,导致输出结果的分布在不断变化,后层网络就要不停地去适应这种分布变化。防止梯度弥散:forward 过程中,逐渐往非线性函数的取值区间的上下限两端靠近,(以 Sigmoid 为例),此时后面层的梯度变得非常小,不利于训练。标准差分数可以回答这样一个问题:"给定数据距离其均值多少个标准差"的问题,在均值之上的数据会得到一个正的标准化分数,反之会得到一个负的标准化分数。零-均值规范化:也称标准差标准化,经过处理的数据的均值为0,标准差为1。原创 2023-02-22 10:50:52 · 498 阅读 · 0 评论 -
记录点硬件知识CPU,GPU,TPU
CPUCPU 是一种基于冯·诺依曼结构的通用处理器。这意味着 CPU 与软件和内存协同工作,如下所示:CPU 最大的优点是它们的灵活性。可以在 CPU 上为许多不同类型的应用加载任何类型的软件。对于每次计算,CPU 从内存加载值,对值执行计算,然后将结果存储回内存中。与计算速度相比,内存访问速度较慢,并可能会限制 CPU 的总吞吐量。这通常称为[冯·诺依曼瓶颈]。CPU的应用场景需要最高灵活性的快速原型设计训练时间不长的简单模型有效批量大小较小的小型模型包含许多以原创 2022-05-03 18:54:33 · 1377 阅读 · 1 评论