
深度学习
文章平均质量分 87
记录深度学习学习过程,分享有关知识,感谢交流学习
小酒馆燃着灯
我有一只快乐的小狗
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
杂记(二十) 线程和内核什么关系 | CPU,Core,GPU,进程,线程 |
我猜题主在说线程与CPU核心之间的关系吧。,这两个一个是硬件概念,一个是软件上的概念,但毕竟是CPU核心在执行线程,因此这里有一点的关联,我们慢慢讲起。实际上CPU和厨师一样,都是按照菜谱(机器指令)去执行某个动作,。这和炒菜一样,我可以按照菜谱抄鱼香肉丝,那么炒菜时这就是鱼香肉丝线程;我可以按照菜谱抄宫保鸡丁,那么炒菜时这就是宫保鸡丁线程。厨师个数就好比CPU核心数,炒菜的样数就好比线程数,这时我问你,你觉得厨师的个数和可以同时抄几样菜有关系吗?答案当然是没有。。原创 2024-01-03 07:53:58 · 1470 阅读 · 0 评论 -
第五十七章 解读轮盘赌算法
3、选择某个个体策略为在区间[0 1]中随机产生一个数,看看该数字落在那个区间,很明显,对于适应度值较大的个体,对应的线段长度会长,这样随机产生的数字落在此区间的概率就大,该个体被选中的概率也大。从最终的结果可以看出,采用累积概率的方式并没有出现“抽中一等奖”事件的概率很大的结果,反而最终的结果和每个奖项的选中概率相近,这说明采用累积概率的轮盘赌选择法是切实可行的,且其选择结果误差很小。看了上面的选择过程我们可能有这样的疑问:由于个体的选择是以“累积概率”为标准的,但一个个体的累积概率。原创 2023-12-24 21:47:33 · 4801 阅读 · 0 评论 -
第五十六章 解读负采样与Pytorch实现
如果使用了负采样的方法我们仅仅去更新我们的positive word-“quick”的和我们选择的其他5个negative words的结点对应的权重,共计6个输出神经元,相当于每次只更新300×6=1800个权重。正如我们上面所讨论的,vocabulary的大小决定了我们的Skip-Gram神经网络将会拥有大规模的权重矩阵,所有的这些权重需要通过我们数以亿计的训练样本来进行调整,这是非常消耗计算资源的,并且实际中训练起来会非常慢。在word2vec的C语言实现中,你可以看到对于这个概率的实现公式。原创 2023-12-24 20:51:42 · 1116 阅读 · 1 评论 -
第五十五章 解读时间复杂度与空间复杂度
我们继续看上面的例子,假设每行代码的执行时间都是一样的,我们用 1颗粒时间 来表示,那么这个例子的第一行耗时是1个颗粒时间,第三行的执行时间是 n个颗粒时间,第四行的执行时间也是 n个颗粒时间(第二行和第五行是符号,暂时忽略),那么总时间就是 1颗粒时间 + n颗粒时间 + n颗粒时间 ,即 (1+2n)个颗粒时间,即: T(n) = (1+2n)*颗粒时间,从这个结果可以看出,这个算法的耗时是随着n的变化而变化,因此,我们可以简化的将这个算法的时间复杂度表示为:T(n) = O(n)原创 2023-12-24 20:27:26 · 381 阅读 · 0 评论 -
第五十四章 解读plt.show与plt.imshow区别, plt.imshow与cv2.imshow区别
plt.imshow()函数负责对图像进行处理,并显示其格式,但是不能显示。其后跟着plt.show()才能显示出来。原创 2023-12-24 15:48:00 · 1545 阅读 · 0 评论 -
第五十三章 解读Python中range与xrange
1、range()返回整个list。生成器是一个可迭代对象,在对生成器进行迭代时,元素是逐个被创建的 使用xrange()进行遍历,每次遍历只返回一个值 一般来看,在对大序列进行迭代的时候,因为xrange的特性,所以它会比较节约内存 因此,xrange的执行效率要高于range。,列表的元素值由三个参数决定: start表示列表开始的值,可省,默认为“0” stop表示列表结束的值,该参数不可缺少 参数step表示步长,可省,默认值为“1” range返回的是一个列表,一次性计算并返回所有的值。原创 2023-12-23 20:54:05 · 474 阅读 · 0 评论 -
第五十二章 优化器SGD,AdamW与Lion性能对比
与 AdamW 和各种自适应优化器需要同时保存一阶和二阶矩相比,Lion 只需要动量,将额外的内存占用减半。例如,AdamW 需要至少 16 个 TPU V4 芯片来训练图像大小为 224、批量大小为 4,096 的 ViT-B/16,而 Lion 只需要8个。另一个显而易见的好处是,由于 Lion 的简单性,Lion 在我们的实验中具有更快的运行时间(step/s),通常比 AdamW 和 Adafactor 提速 2-15%,具体取决于任务、代码库和硬件。Lion 比 AdamW 更喜欢更大的批次。原创 2023-12-23 16:58:38 · 1440 阅读 · 0 评论 -
第五十一章 计算机编程相关英语词汇(最新整理12.23)
点击进入—计算机相关英语词汇(最新整理12.23)原创 2023-12-23 14:40:30 · 480 阅读 · 0 评论 -
第五十章 解读交叉熵损失函数的求导(sigmoid和softmax)
与平方损失函数相比较,由于学习速率可以被输出误差所控制的缘故,交叉熵能在梯度下降时避免均方误差损失函数学习速率降低的问题,有着更为出色的效果。除此之外,由于交叉熵的计算涉及到各个类别的概率,所以说起交叉熵几乎与sigmoid/softmax函数形影不离,这些我们都会在下文中一一印证。交叉熵,顾名思义,取的是两者交叉的熵值;而在机器学习中的所谓两者,自然是真实分布(或实际输出概率)与预测分布(或期望输出概率),通过熵值计算的方法来刻画两者距离,可以评估两个概率分布(或特征工程里的两个特征变量)的相似度。原创 2023-12-22 15:56:54 · 1229 阅读 · 0 评论 -
第四十九章 解读Python中的解包*与**
本文所讲的是python的星号操作符和双星号操作符,* 迭代器解包操作,也称之为序列拆分操作符** 字典解包操作,也称之为映射拆分操作。作为关键字参数传递给函数。使用和**的解包的好处是能节省代码量,使得代码看起来更优雅。如果列表中有3个元素,那么刚好可以分配给3个变量。除了列表对象可以解包之外,任何可迭代对象都支持解包,可迭代对象包括元组、字典、集合、字符串、生成器等实现了__next__方法的一切对象。元组解包字符串解包字典解包>>> a'a'>>> b'b'>>> c'c'原创 2023-12-22 14:17:46 · 851 阅读 · 0 评论 -
第四十八章 解读RGB颜色机制,在图像处理中像素值越大意味着什么,OpenCV为什么使用 BGR 颜色格式
RGB颜色空间以R(Red:红)、G(Green:绿)、B(Blue:蓝)三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。RGB空间是生活中最常用的一个颜色显示模型,电视机、电脑的CRT显示器等大部分都是采用这种模型。自然界中的任何一种颜色都可以由红、绿、蓝三种色光混合而成,现实生活中人们见到的颜色大多是混合而成的色彩。肉眼可以识别世界上的所有颜色,而RGB几乎可以组合成世界上所有的颜色!原创 2023-12-21 18:37:03 · 1358 阅读 · 1 评论 -
第四十七章 成功解决vscode为什么下载了汉化插件却不生效
文章目录1.确保安装了汉化插件2.在vscode中快捷键Ctrl+Shift+P,打开全局命令面板3.找到Configure Display Language,点击进入到选择语言,这里选择中文4.会弹出框提示重启,Restart重启vscode后就会看到中文界面1.确保安装了汉化插件2.在vscode中快捷键Ctrl+Shift+P,打开全局命令面板3.找到Configure Display Language,点击进入到选择语言,这里选择中文4.会弹出框提示重启,Restart重启vscode原创 2023-12-21 17:15:06 · 434 阅读 · 0 评论 -
第四十六章 彻底解决PyCharm运行Jupyter .ipynb文件(多种方案)
如图,终端中显示 Jupyter Notebook 服务器的 URL 地址(通常是 http://localhost:8888/),复制如下任一链接(包括token部分)每次Jupyter提供的token不一样,若重新启动Jupyter需重新填充token。 (也可以使用独立安装和使用,无需依赖 Anaconda) 建议设置简单密码(如123456)注意:输入密码不显示。原创 2023-12-21 17:01:37 · 14333 阅读 · 0 评论 -
第四十五章 解读python中yield的用法
先大致说一下send函数的概念:此时你应该注意到上面那个的紫色的字,还有上面那个res的值为什么是None,这个变成了7,到底为什么,这是因为,send是发送一个参数给res的,因为上面讲到,return的时候,并没有把4赋值给res,下次执行的时候只好继续执行赋值操作,只好赋值为None了,而如果用send的话,开始执行的时候,先接着上一次(return 4之后)执行,先把7赋值给了res,然后执行next的作用,遇见下一回的yield,return出结果后结束。4.程序执行print("*"原创 2023-12-21 16:28:07 · 381 阅读 · 0 评论 -
YOLOv8及其改进系列(三) 详解使用YOLOv8训练自定义的目标检测与分割数据集
如果你不想使用 4.1 的获取源码指令,直接用CLI指令推理,那你可以使用如下的指令直接安装ultralytics包,这两种方式在更改项目代码时的操作是不同的。但是,如果我们有了标注数据集,计算机就可以通过学习这些数据来理解猫和狗之间的差异,并且可以在新的图像中准确地识别它们。这种方法可以提供一些特殊情况或无法通过其他方式获得的图像,但是合成图像通常无法完全代替真实场景的数据,可能会对模型的准确性产生一定的影响。或者,您可以编写一个程序来爬取网络并下载所需的图像,但是这需要对数据进行清洗,以确保数据质量。原创 2023-12-19 13:57:43 · 934 阅读 · 0 评论 -
第四十四章 Roboflow一键导出VOC、COCO、YOLO、CSV等格式
YoloV8。YoloV8是一种高效的目标检测算法,它的训练需要高质量的数据集。然而,获取高质量的数据集是一项耗时且费力的任务。YoloV8官方推荐了一个数据集网站,就是Roboflow。Roboflow是一个数据集管理平台,提供了免费的数据集,同时也支持上传自己的数据集进行格式转换。使用Roboflow,开发者可以方便地获取所需格式的数据集,无需手动转换格式。此外,Roboflow还提供了多种数据预处理、数据增强等功能,可帮助开发者更好地优化训练数据,原创 2023-12-18 18:07:29 · 1462 阅读 · 0 评论 -
深度学习中小知识点系列(二十四) 深入解读可分离卷积以及深度学习中的八种卷积
深入浅出可分离卷积。原创 2023-12-18 12:39:50 · 1072 阅读 · 1 评论 -
深度学习中小知识点系列(二十三) 解读python中的装饰器(极为详尽)
最近有人问我装饰器是什么,我就跟他说,其实就是装饰器就是类似于女孩子的发卡。你喜欢的一个女孩子,她可以有很多个发卡,而当她戴上不同的发卡,她的头顶上就是装饰了不同的发卡。但是你喜欢的女孩子还是你喜欢的女孩子。如果还觉得不理解的话,装饰器就是咱们的手机壳,你尽管套上了手机壳,但并不影响你的手机功能,可你的手机还是该可以给你玩,该打电话打电话,该玩游戏玩游戏,。而你的手机就变成了带手机壳的手机。装饰器就是python的一个拦路虎,你干或者不干它,它都在那里。原创 2023-12-17 17:27:10 · 1011 阅读 · 1 评论 -
第四十三章 彻底解决pycharm中: OSError: [WinError 1455] 页面文件太小,无法完成操作 的问题(工具)
相信很多小伙伴在使用pycharm的时候都遇到这个问个报错问题吧, 我是在跑PyTorch相关代码遇到的这个问题, 也搜索了很多解决办法, 这里介绍下我总结的经验.原创 2023-12-14 14:45:35 · 689 阅读 · 0 评论 -
MMDetection学习路线与资料整理
MMDetection框架入门教程_非常全面MMDetection官方文档MMDetection官方文档解读MMDetection学习资源MMDetection训练个人训练集安装pycocotools原创 2023-12-13 23:35:44 · 475 阅读 · 1 评论 -
YOLOv8及其改进系列(二) 详解 YOLOv8
提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求Backbone骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的C3结构换成了梯度流更丰富的C2f结构,并对不同尺度模型调整了不同的通道数。属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。原创 2023-12-13 23:04:38 · 2817 阅读 · 0 评论 -
YOLOv8及其改进系列(一) 初探YOLOv8
我们的基准测试是在英特尔的支持下开发的,是为计算机视觉从业者提供的基准测试,旨在为以下问题提供更好的答案:“该模型在我的自定义数据集上的工作效果如何?截至 2023 年 1 月 10 日发布,YOLOv8 有五个版本,从 YOLOv8n(最小的型号,在 COCO 上的得分为 37.3 mAP)到 YOLOv8x(最大的型号,在 COCO 上的得分为 53.9 mAP)。由于我们知道该模型将不断改进,因此我们可以将初始的 YOLOv8 模型结果作为基准,并期望随着未来的改进,将发布新的迷你版本。原创 2023-12-13 21:51:02 · 1493 阅读 · 0 评论 -
杂记(十八) Windows安装CentOS 7(桌面版)
访问CentOS官网:https://www.centos.org/;至此,CentOS 7就安装好了;然后,默默等待十几分钟就OK了;原创 2023-12-12 23:05:40 · 431 阅读 · 1 评论 -
杂记(十七) 配置环境中遇到的专业名词(IP地址、端口、终端、显卡服务器......)
它是teletype的缩写。这些外围设备就被称为终端,负责向主机输入数据的就叫输入终端,比如鼠标、键盘、麦克风、摄像头,负责接收主机输出数据的设备就被称作输出终端,比如显示器、耳机。在计算机中,每台电脑都是有对应的IP地址,IP地址是一个数字列表,在当前IPv4的版本中,IP地址是一个32位的二进制数,分成4个字节,最常见的点分十进制就表示4段。服务器所有应用通信都是通过对应的端口建立的,端口范围是1-65535,window服务器默认远程管理服务端口是3389,为了增强安全性,一般都会更改3389端口。原创 2023-12-12 03:00:23 · 682 阅读 · 0 评论 -
深度学习中小知识点系列(二十二) 解读Batch Size对训练神经网络的影响
在本文中,我们将试图更好地理解Batch Size 对训练神经网络的影响什么是 Batch Size?为什么 Batch Size 很重要?经验上,大 Batch Size 和小 Batch Size 分别表现如何?为什么大 Batch Size 倾向于表现更糟,我们如何弥补性能鸿沟? 注:原文对本节的描述与笔者所学知识有所出入,笔者决定按自身所学来表述,若有谬误望不吝赐教,多谢!原创 2023-12-12 02:59:54 · 1522 阅读 · 0 评论 -
杂记(十六) 训练神经网络的秘诀(翻译)
几周前,我一条关于“最常见的神经网络错误”的推文,列出了一些与训练神经网络相关的常见问题。这条推文的参与度比我预期的要高得多(包括😃)。显然,很多人都亲身经历过“这是卷积层的工作原理”和“我们的卷积网实现了最先进的结果”之间的巨大差距。所以我认为刷掉我尘土飞扬的博客,将我的推文扩展到这个主题应得的长篇形式可能会很有趣。然而,我不想列举更常见的错误或充实它们,而是想更深入地挖掘并讨论如何完全避免犯这些错误(或非常快速地修复它们)。这样做的诀窍是遵循某个过程,据我所知,这个过程并不经常被记录下来。翻译 2023-12-11 20:24:04 · 74 阅读 · 0 评论 -
杂记(十三) 解读注意力机制(从基础原理到深度理解)
Self-attention 结构 **自上而下分为三个分支,**分别是。原创 2023-12-11 19:30:40 · 990 阅读 · 1 评论 -
杂记(十二) 解读Python中的random,enumerate,zip,map
result = list(map(lambda x:x(i), fun)) # 相当于每次 [fun(i)] = [mul(i), add(i)][0, 0][1, 2][4, 4][9, 6][16, 8][25, 10]原创 2023-12-11 19:18:59 · 1058 阅读 · 0 评论 -
杂记(十一) 解读Python中的异常处理
在 Python 中,所有异常必须为一个派生自 BaseException 的类的实例 (BaseException 是所有内置异常的基类在带有指定一个特定类的 except 子句的 try 语句中,该子句将处理派生自 BaseException 类的异常类 (但也有例外)。通过子类化创建的两个不相关异常类永远不等效的,即便二者名称相同。除了 Python 内置异常类,还可以将内置异常类子类化以定义新的异常。因为BaseException 类不应被用户自定义类直接继承,所以。原创 2023-12-11 19:07:33 · 1027 阅读 · 0 评论 -
杂记(十) 解析python中的iterable,iterator,generator
迭代器 (iterator)是一种用于表示一连串数据流的对象。 迭代器对象要求支持迭代器协议——对象须同时支持/实现iter() 方法和next() 方法。iterator.iter()方法返回迭代器对象本身(对可迭代对象使用内置函数 iter() 将返回迭代器),这是同时允许容器和迭代器配合 for … in … 语句使用所必须的。iterator.next()方法返回容器的下一项元素。重复调用迭代器的next。原创 2023-12-11 18:56:26 · 1497 阅读 · 0 评论 -
第四十二章 快速进入PyTorch(工具)
本指南将展示如何分两步将 PyTorch 代码组织成 Lightning。保留所有灵活性(这全是纯 PyTorch),但去除了大量样板(boilerplate)将研究代码与工程解耦,更具可读性更容易复现通过自动化大多数训练循环和棘手的工程设计,减少了出错的可能性可扩展到任何硬件而无需更改模型nn.ReLU(),nn.ReLU(),注意,定义了一个系统 (system) 而不仅仅是一个模型 (model):关于系统 (system) 的例子还有:在内部,原创 2023-12-11 18:40:05 · 893 阅读 · 0 评论 -
杂记(十四) 解析RNN,LSTM与GRU
为什么需要序列模型呢?在前馈神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,但在一定程度上也减弱了神经网络模型的能力。前馈神经网络可以看作一个复杂的函数,每次输入都是独立的,即网络的输出只依赖于当前的输入。但在很多现实任务中,网络的输入不仅和当前时刻的输入相关,也和其过去一段时间的输出相关。比如一个有限状态自动机,其下一个时刻的状态 (输出) 不仅仅和当前输入相关, 也和当前状态 (上一个时刻的输出) 相关。转载 2023-12-11 18:31:11 · 393 阅读 · 0 评论 -
深度学习中小知识点系列(二十) 解析归纳偏置 (Inductive Bias)
是自然科学中常用的两大方法之一 (归纳与演绎,Induction & Deduction),指从一些例子中寻找共性、泛化,形成一个较通用的规则的过程。 显然,加了一定正则的偏置的实线 A 比虚线 B 更为简单而通用 (模型复杂度受到惩罚而更低,恰当拟合数据点,泛化性能更好)。 对于上图中的 6 个离散实心点,可由很多不同的曲线拟合之。 在机器学习中,很多学习算法经常会对学习的问题做一些关于目标函数的必要假设,称为。 归纳偏置的意义或作用是使得学习器具有了泛化的能力。原创 2023-12-11 18:14:19 · 1015 阅读 · 0 评论 -
深度学习中小知识点系列(二十一) 解读深度学习中模型大小与推理速度
当年实习做算法时,主管给的第一个任务就是「原创 2023-12-11 18:19:12 · 1405 阅读 · 0 评论 -
第四十一章 解读screen在后台离线运行程序(工具)
用户可以在一个screen会话中创建多个screen窗口,同时连接多个本地或远程的命令行会话,并在其间自由切换,在每一个screen窗口中就像操作一个真实的SSH连接窗口那样。GUN是一个自由软件集体协作计划,始创于1983年,它的目标是创建一套完全自由的操作系统,称为GNU,也就是我们俗称的Linux系统,后续的Debian、CentOS也是基于Linux开发的发行版本。**2. 多窗口:**在screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。将指定的screen离线。原创 2023-12-11 18:06:53 · 439 阅读 · 0 评论 -
杂记(十五) 解析Python中的深拷贝和浅拷贝
在Python中对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,并没有拷贝这个对象,而只是拷贝了这个对象的引用。直接赋值默认浅拷贝,只传递对象的引用,原始列表改变,被赋值的b也会做相同的改变。深拷贝包含对象里面的对象,所以原始对象的改变不会造成深拷贝对象的改变。浅拷贝没有拷贝子对象,原始数据改变时,子对象会改变。原创 2023-12-11 17:47:13 · 398 阅读 · 0 评论 -
深度学习中小知识点系列(十九) 解析PyTorch数据归一化处理(详尽)
别人的解答:数据如果分布在(0,1)之间,可能实际的bias,就是神经网络的输入b会比较大,而模型初始化时b=0的,这样会导致神经网络收敛比较慢,经过Normalize后,可以加快模型的收敛速度。因为对RGB图片而言,数据范围是[0-255]的,需要先经过ToTensor除以255归一化到[0,1]之后,再通过Normalize计算过后,将数据归一化到[-1,1]。只要输入数据集x确定了,mean(x)和std(x)也就是确定的数值了,为什么Normalize()函数还需要输入mean和std的数值呢?原创 2023-12-11 17:38:39 · 536 阅读 · 0 评论 -
深度学习中小知识点系列(十八) 解析pytorch中torch.stack()和torch.cat()(详尽)
手写过RNN的同学,知道在循环神经网络中输出数据是:一个list,该列表插入了seq_len个形状是[batch_size, output_size]的tensor,不利于计算,需要使用stack进行拼接,保留–[1.seq_len这个时间步]和–[2.张量属性[batch_size, output_size]]。形象的理解:假如数据都是二维矩阵(平面),它可以把这些一个个平面按第三维(例如:时间序列)压成一个三维的立方体,而立方体的长度就是时间序列长度。浅显说法:把多个2维的张量凑成一个3维的张量;原创 2023-12-11 17:33:34 · 2205 阅读 · 0 评论 -
深度学习中小知识点系列(十七) 解析对深度学习中计算量(FLOPs)和参数量(Params)的理解以四种计算方法总结(详尽)
计算量对应我们之前的时间复杂度,参数量对应于我们之前的空间复杂度,这么说就很明显了也就是计算量要看网络执行时间的长短,参数量要看占用显存的量。原创 2023-12-11 17:25:43 · 1275 阅读 · 0 评论 -
深度学习中小知识点系列(十六) 解析pytorch中Conv1d、Conv2d,Conv3d,空洞卷积,转置卷积,深度可分离卷积(详尽)
Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes 从字面上就很好理解,是在标准的 convolution map 里注入空洞,以此来增加 reception field。原创 2023-12-11 16:40:09 · 1284 阅读 · 0 评论