自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(178)
  • 收藏
  • 关注

原创 【每日AIGC】4月10日最新AI界好玩的

1040亿的 参数的开源模型Command R+与GPT4 打成平手这是首次开源模型追平GPT4Command R+的研发公司Cohere的CEO是Transformer最年轻的作者Aidan Gomez简称割麦子Huggingface 联合创始人说:2024年,开源和闭源两条路上,人工智能团队发展都如此之快。

2024-04-10 21:25:30 328

原创 【前沿模型解析】潜在扩散模型 2-3 | 手撕感知图像压缩 基础块 自注意力块

同ResNet一样,注意力机制应该也是神经网络最重要的一部分了。想象一下你在观看一场电影,但你的朋友在给你发短信。虽然你正在专心观看电影,但当你听到手机响起时,你会停下来查看短信,然后这时候电影的内容就会被忽略。这就是注意力机制的工作原理。在处理输入序列时,比如一句话中的每个单词,注意力机制允许模型像你一样,专注于输入中的不同部分。模型可以根据输入的重要性动态地调整自己的注意力,注意自己觉得比较重要的部分,忽略一些不太重要的部分,以便更好地理解和处理序列数据。具体来说,是通过q,k,v实现的。

2024-04-09 20:26:51 959

原创 【前沿模型解析】潜在扩散模型 2-2 | 手撕感知图像压缩基础块上下sample块

这是因为这个网络在设计的过程中,尽量维持卷积核尺寸大小统一且是奇数(这里是3),所以假设我们直接用卷积核自带的填充,则默认是对称填充,则会导致不能整除而出错。最后输出尺寸大小为(公式 $ \frac{特征图长或宽+2*填充尺寸-卷积核尺寸}{步长}+1$)这时候我们只需要填充一侧(非对称填充)填充完后,尺寸大小是129。这里注意一点,我们在实现过程中,用了非对称的填充。这里的上采样方式比较简单,通过插值实现的。上采样即改变特征图大小为原本的2倍。下采样,即改变特征图的尺寸。方式二的话是没有参数的。

2024-04-09 20:24:57 874

原创 【前沿模型解析】潜在扩散模型 2-1 | 手撕感知图像压缩 基础块ResNet块

我们可以选择直接开到目的地,也可以选择在途中设置几个“中转站”,但是中转站多了有可能会丢失最终目的地的信息,中途有好玩的就被吸引了,所以我们有时候要直接开车前往目的地,避免一些信息的丢失或遗忘。是因为BN在Batch_size比较小的时候,表现很差,而我们在图像生成的实际任务中,由于分辨率比较大,所以Batch_size往往比较小。残差结构应该是非常重要的基础块之一了,你肯定会在各种各样的网络模型结构里看到残差结构,他是非常强大的~不是用的传统的批归一化BN,而是用的组归一化GN。

2024-04-06 23:19:04 751

原创 【前沿模型解析】潜在扩散模 1 | LDM第一阶段-感知图像压缩总览

首先最重要的是网络结构本身复杂,再者代码也不容易看懂,LDM代码是通过包含着大量的动态导入包,Pytorch_lighting框架实现,不是我们所熟悉的pytorch框架,因而会对代码阅读造成更大的困难~AE距离生成图像就差一步,想一想,如果我们编码后的向量服从某一个规律,比如服从正态分布,那么这时候从这个正态分布随机采样一个向量,就可以生成图片了,这时候还可以生成一些多样的原本没有的图片。的了,是量子化的,也就是说,只能是某些特定的离散的小数,比如1.1,1.2,1.3 不存在中间态。

2024-04-06 23:16:44 1083

原创 【Python进阶】einops库的总:张量重排,重复,堆叠操作利器 | rearrange reduce repeat stack

深度学习中,往往需要大量的形状改变,我见到的最多的便是rearrange他其实是属于einops这个库的,这个库的更多使用方式整理如下。

2024-03-27 23:37:10 581

原创 【学海拾贝】| 关于Python的 PEP 484规则了解:类型提示,函数注解

在实际的工厂在实际的工程代码的开发中,常常可以碰到这种情况上网查了之后发现这是PEP484规则~

2024-03-26 23:52:41 351

原创 【Python进阶】工厂函数 | 高效处理管理对象的创建逻辑

工厂函数是一种设计模式,它用于创建对象而无需指定明确的类。在Python中,工厂函数通常是一个函数,它返回其他对象。工厂函数可以帮助简化对象的创建过程,并提供更灵活的方式来管理对象的创建逻辑。class Dog:# 使用工厂函数创建对象print(my_dog.name) # 输出 "Buddy"在这个例子中,create_dog函数是一个工厂函数,它接受一个参数name,并返回一个Dog类的实例。通过调用create_dog函数,我们可以创建一个Dog对象,而无需直接实例化Dog类。

2024-03-26 23:46:32 440

原创 【Python进阶】argparse库基础用法全总结:高效脚本参数解析 | 参数类型使用代码

argparse库是 Python 标准库中用于解析命令行参数和选项的模块。它使得编写命令行界面(CLI)变得更加容易。,在深度学习中用到的比较多~~我们运行Python文件往往是直接输入命令但是如果我们想给Python文件脚本运行时候传入参数,像是下面这种该怎么做呢?就是要用到argparse库~将argparse库的基础用法总结如下。

2024-03-25 22:47:57 772

原创 【python进阶】python中的*妙用全解析:高效收集分配参数 | 单个*,两个*,混用情况

这时候我们会发现,可以传入多个位置参数输出作用是将调用时提供的所有值,放在一个元组里。如果我们想给函数传入关键字参数,如果用2.1的方式就会报错所以我们可以通过**的方式输出。

2024-03-25 12:16:35 923

原创 【Python进阶】OmegaConf库:高效配置项管理 | 访问配置文件,修改合并配置文件

OmegaConf。

2024-03-24 23:36:18 386

原创 【工具使用】Markdown基础(重置版) | 文本操作,表情,列表,表格,跳转链接,图片

为什么要学MarkDown语法最开始朋友给我介绍的时候,我还不以为意,觉得Word多好用啊。但当我后来深入使用之后,发现了Markdown的魅力1 简洁高效,粘贴一些东西的时候不需要字符匹配之类的2 很多编辑器都支持Markdown语法,适配性通用性很强3 熟练之后很方便进行输入一些公式,特殊标记等待学习的时候最好用Typora等编辑器~

2024-03-20 09:58:08 306

原创 【工具推荐】tmux 终端与会话分离神器 | 再也不用担心训练到一半不小心关闭终端导致训练终止了

tmux是一个 terminal multiplexer(终端复用器),它可以启动一系列终端会话。是非常强大的。但在正式讲解之前,我们需要了解两个概念,一个是终端,一个是会话在Linux中,"终端"通常指的是用户与系统交互的文本界面,可以是物理终端设备(如终端机)或虚拟终端(如终端仿真器)。终端提供了一个命令行界面,用户可以在其中输入命令并查看命令的输出。"会话"则是指用户在终端上与系统交互的一段时间内的一些操作任务。当用户登录到系统时,在终端上开始一个新的会话。

2024-03-18 11:40:11 412

原创 【机器学习】降维与度量学习 | 多维度嵌入,主成分分析,核化线性降维

等度量映射的基本思想是首先通过近邻图(neighborhood graph)来估计数据点之间的测地距离,然后利用多维缩放(MDS)等技术将高维数据映射到低维空间中,使得在低维空间中的欧氏距离尽可能地近似于在高维空间中的测地距离。核化线性降维的基本思想是,在将数据映射到高维空间之后,利用核技巧(Kernel Trick)将高维空间中的内积操作替换为核函数的计算,从而避免了直接计算高维空间的特征向量,减少了计算复杂度。KNN其实没有显式的训练过程,它是懒惰学习的代表,而之前学的是急切学习,

2024-03-18 11:05:31 628

原创 【Python进阶】关于argparse库的使用:便捷参数读取,解析,编写

在Python中,parser包通常指的是argparse模块,它是Python标准库中的一部分,用于解析命令行参数。argparse模块使得编写命令行接口变得更加简单和灵活。下面是argparse。

2024-03-17 21:36:55 684

原创 【学海拾贝】文件大小和实际占用空间大小不一致的情况思考:加深文件系统分配理解

如果这个空间用不完,且文件内容少,Windows就会把内容直接写到索引空间里空余的地方。也就是说操作系统只会给某一个文件分配一个簇,两个簇,一直到N多个簇,不会出现1.5个簇,即不会出现两个不同公用一个簇的情况,这也就好理解了。这是因为操作系统的文件系统(NTFS)是按簇去分配空间的,簇是分配空间的最小单位,是4KB(4096字节),什么意思。如果文件内容增加了,超过了索引区的大小,就会把内容从索引空间里移出去分配磁盘空间保存。也就是说占用空间只能是4KB的整数倍,而文件大小却不一定是4KB的整数倍。

2024-03-14 16:30:48 336

原创 【深度学习】四种归一化方式对比:| LayerNorm,BatchNorm,InstanceNorm,GroupNorm

归一化技术可以很好地,缓解梯度消失/爆炸问题,并有助于更快地收敛,也是一种正则化技术防止过拟合实际中会看到好多归一化比如BatchNorm,LayerNorm,GroupNorm,InstanceNorm。

2024-03-13 22:18:59 1725 1

原创 【机器学习】集成学习:发挥1+1大于2的功效 | 集成学习基础原理,概念,Boosting,Bagging与随机森林

Bagging(Bootstrap Aggregating)是一种集成学习方法,旨在通过训练多个相互独立的分类器,并将它们的预测结果进行组合来改善分类的准确性。Boosting算法的工作方式是按顺序训练一系列的弱分类器,每个弱分类器都试图纠正前一个分类器的错误。这些弱分类器通常是简单的模型,例如决策树,它们在某些方面表现不佳,但当它们结合在一起时,可以产生更强大的模型。AdaBoost的关键在于不断调整样本的权重,使得每个新的分类器都集中在前一个分类器分错的样本上,从而提高整体的分类性能。

2024-03-13 09:23:18 629

原创 【Python进阶】assert 使用 | assert触发条件,使用实践示例

assert是 Python 中的一个关键字,用于在代码中进行断言检查。它的作用是在条件为False的情况下触发异常,用于帮助开发者在程序中捕获和处理错误。assert其中expression是要进行断言检查的条件,message是可选的错误消息,当断言失败时会显示该消息。如果expression的结果为False,则会引发异常。x = 10在这个例子中,由于x的值不等于5,所以断言会失败,触发异常,并显示消息。在开发过程中,assert可以帮助开发者快速发现程序中的问题,并进行调试和修复。

2024-03-12 21:56:56 264

原创 【机器学习】贝叶斯分类器 | 分类器基本原理,朴素贝叶斯,半朴素贝叶斯,贝叶斯网

在学习贝叶斯分类器的过程中​ 我们的学习本质上是对于众多的属性,x1,x2,x3 到一个结果分类y,线性分类器什么的是训练集拟合一个函数从众多属性x到y,SVM是学习一个分界线划分不同的y对应的x,而贝叶斯分类器本质上是对数据集观测做统计结果从而对未知的属性进行预测​ 传统机器学习果然就是手工提取特征,就是比如属性之间的依赖关系也得靠我们人工设计,甚至会有很多的假设。

2024-03-12 15:18:07 716

原创 【机器学习】支持向量机 | 支持向量机理论全梳理 对偶问题转换,核方法,软间隔与过拟合

支持向量机走的路和之前介绍的模型不同之前介绍的模型更趋向于进行函数的拟合,而支持向量机属于直接分割得到我们最后要求的内容。

2024-03-11 15:35:15 955

原创 【学海拾贝】共享GPU和专用GPU是什么?

这个里面说到,训练时,可以使用共享GPU内存,能解决由num_works设置大于0引起的问题。但是这里的这个num_works是什么呢?他是我们在dataloader里面经常用到的。num_workers增加可以增加去读取数据的进程个数,但是也会增加cpu内存的消耗。共享GPU和专用GPU内存,我比较好奇这共享GPU可不可以用呢?打开任务管理器,在性能一栏,我们可以看到。共享GPU和专用GPU是什么。

2024-03-10 21:59:41 215

原创 【机器学习】神经网络 | 神经网络基础知识全梳理,神经网络组成,优化及其常见的神经网络

神经网络是一种模仿人脑神经元网络结构和功能的数学模型,其中非常重要的一部分是有激活函数。激活函数模拟了生物神经元的兴奋性质。在生物神经系统中,神经元接收到足够的刺激时会被激活并产生电信号传递给其他神经元。激活函数在神经网络中的作用类似,它根据输入信号的加权和是否超过了某个阈值来决定神经元是否被激活,以及激活的程度。这种非线性的激活特性使得神经网络能够学习和表示复杂的非线性关系,增强了神经网络的表达能力。有了激活函数从某种意义来说就可以解决非线性问题了。这在实际中有着非常重要的意义。

2024-03-10 17:22:50 1407

原创 【机器学习】决策树系统 | 决策树基本原理,最优划分属性,剪枝处理

决策树是一种常用的机器学习算法,它模拟了人类决策过程中的思考方式。想象一下,你要决定是否出门散步,你可能会考虑几个因素:天气、心情、体力状况等。每个因素都像是一个问题,你的回答(是或否)会引导你做出最终的决定。决策树就是这样一种结构,它通过一系列的问题来帮助你做出选择。:这是决策树的起点,相当于你要解决的问题。比如,你的问题可能是“今天是否出门散步”。:这些节点代表决策过程中的考虑因素。比如,你可能要考虑“天气是否晴朗”、“心情是否好”、“体力是否充沛”。

2024-03-08 11:32:45 1123

原创 【问题解决】| ControlNet训练为什么这么慢???关于模型量与显卡资源认知关系的建立

我一开始没啥概念,反正就各种折腾好环境开始训练了,忽然发现,哦?为什么这么慢,慢的离大谱。我觉得做深度学习相关的开发,要深刻认识到自己的显卡资源有多少,以及对应能做一些什么研究。1个epoch需要12500次迭代,而一次迭代4分钟,大约需要八百多个小时。所以,一般来说 几个GB的模型 就已经有亿个往上的参数了,训练自然会慢~比如今天的我就对这部分认识不深,终归还是实践代码少~缺乏经验。我后来看了一下,Controlnet大约十亿参数。我觉得之后要多跑代码,多跑工程项目啊。我今天做了一件什么事情。

2024-03-07 21:16:45 210

原创 【问题解决】| 关于vscode调试python文件 报错 且直接运行正常的诡异情况记录

'c:\Users\Qodi\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher':这是Visual Studio Code(VSCode)的Python扩展使用的调试器启动器的路径。我一开始以为是没有切换虚拟环境的问题,导致无法找到包,因为他的这个前面的(base)并没有切换到我的代码的环境。关于python的debug报错,其实很奇怪。

2024-03-07 20:52:51 581

原创 【环境思考】| 关于pip安装的一些问题解决,从哪里下载,缓存,以及构建环境包的几种方式

Python包安装是Python开发过程中的重要环节,它允许开发者为项目添加额外的功能或库。而其中最重要的指令是pip我们会发现,当我们输入pip的时候,就会进行安装我会很好奇,pip这些是从哪里下载安装的,原理是什么?首先我们回答:pip本身是什么?

2024-03-06 23:18:03 388

原创 【机器学习】线性模型 |线性回归,逻辑回归,线性判别分析的各种线性回归的原理和使用示例全解析

线性模型我们主要讲解几个经典的线性模型线性模型很大程度上是非线性网络,深度学习的基础~主要有三个内容1 线性回归(又分为一元线性回归和多元线性回归)2 对数几率回归(也称为逻辑回归)3 线性判别分析。

2024-03-06 10:47:51 1146

原创 【问题解决】| 关于torch无法使用GPU的一些实验探索,思考

实验证明在pip指令后面的 cu118才是关键。Fridemn-CSDN博客做实验尝试做到很晚但是我们目前只能说有一些感性的认识,总结了一些经验但是对于CUDA的理解还是有很多不到位的地方,需要后面不断的实践补充。

2024-03-03 22:19:31 1460

原创 【问题解决】| AttributeError: module ‘xxx‘ has no attribute ‘xxx‘

2 如果没有,则搜索官方文档,在官网里直接搜这个函数,然后找到这个函数对应的版本,下载版本。1 对于项目代码,看别人推荐的Requirements.txt里面的版本。怎么理解,就是说,这些包的更新的过程中,可能会弃用一些函数。你能保证别人的代码正确性的情况下,却出现了这种问题。如果出现某些函数没有,那么大概率是因为版本的问题,当你执行一个别人写好的代码的时候。导致你用最新的版本没有这些函数。所以一般的解决方法是。

2024-02-28 18:16:23 528

原创 【问题解决】| conda不显示指示前面的(base)无法在终端激活虚拟环境

就是在安装好conda,配置好环境变量后可以正常用conda的指令,如创建环境等等但是不能激活新建的环境,我们知道同时也没有前面的小括号指示当前环境,也没有这个前面的(base)

2024-02-28 17:57:22 1250

原创 机器学习 | 模型评估和选择 各种评估指标总结——错误率精度-查准率查全率-真正例率假正例率 PR曲线ROC曲线

机器学习 | 模型评估和选择 各种评估指标总结——错误率精度-查准率查全率-真正例率假正例率 PR曲线ROC曲线

2024-02-28 16:58:24 1235

原创 学海拾贝 | 配置文件总结 yaml文件,json文件,xml文件

YAML(YAML Ain’t Markup Language)是一种用于表示数据序列化的文本格式。它最初被设计用于配置文件和数据交换格式,具有易读易写的特性,适合人类阅读和编辑。核心:YAML采用缩进来表示数据的结构,而不是使用像XML或JSON这样的符号,使得它在处理复杂数据结构时非常直观。YAML配置文件通常用于配置应用程序、系统或服务的设置和参数。它们以YAML格式编写,可以包含键值对、列表、嵌套结构等。

2024-02-27 19:21:07 387

原创 机器学习 | 基本概念梳理——数据集评估,任务,训练和测试,期望结果

整体框架机器学习的基本概念全梳理我们通过一个生动形象的例子来介绍这些概念我们假设有一个任务是根据地理天气等特征位置预测经纬度。

2024-02-27 11:51:55 1492

原创 手撕Transformer(三)| 基础Transformer整体结构代码解析,从宏观到微观

首先Transformer最初被用在NLP的任务上,我们从经典的翻译任务上入手首先介绍翻译任务的背景,翻译任务是从一种语言到另一种语言,本质上是一个序列到一个序列的过程比如“I like apples”到“我喜欢苹果”的过程,是英语到中文那么每一种语言都有一个词表,比如英语(有300万个单词)那么词表大小就是300万,中文有九千多个汉字,那么词表大小就是九千多,从英语到中文的过程,英语是源语言(src),中文是目标语言(tgt),反之中文到英文的过程,中文是源语言,英文是目标语言。

2024-02-25 16:25:31 914

原创 手撕Transformer(二)| Transformer掩码机制的两个功能,三个位置的解析及其代码

Transformer的掩码机制是非常重要的三个位置,两个功能。

2024-02-25 16:09:41 1139

原创 ChatGLM的Trainer模块解析

Trainer类为什么这样比较好Trainer是一个简单但功能完备的PyTorch训练和评估循环,针对🤗 Transformers进行了优化。

2024-02-20 22:46:36 793

原创 手撕扩散模型(一)| 训练部分——前向扩散,反向预测代码全解析

三大模型VAE,GAN, DIffusion扩散模型 是生成界的重要模型,但是最近一段时间扩散模型被用到的越来越多的,最近爆火的OpenAI的Sora文生视频模型其实也是用了这种的方式,因而我打算系统回顾扩散系列知识,并注重代码的分析,感兴趣可以关注这一系列的博客,先介绍基础版本的,之后介绍扩散进阶的相关知识。扩散模型很多的讲解上来会讲解很多的数学,会让人望而却步,但其实扩散在实际使用的时候并不复杂,我会先从代码的角度告诉大家怎么实操,再介绍数学推理。

2024-02-20 22:41:34 767

原创 手撕Transformer(一)| 经典Positional_encoding 用法and代码详解

本节我们主要介绍Transformer的重要的第一部分我会非常注重代码的解析~因为那是我最初学习的痛苦的来源,希望你们不受这些痛苦折磨哈哈哈。

2024-02-19 23:44:33 1216 2

原创 【报告解析】OpenAI Sora视频模型官方报告全解析 | 效果,能力以及基本原理

摘要中指出,OpenAI探索了生成模型在视频数据的大规模训练,特别的,训练了基于文本条件的扩散模型,模型利用了Transformer架构,能够生成长达一分钟的视频,研究结果显示大规模的视频生成模型是构建通用的真实物理世界模拟器的一种很有潜力的方式报告主要聚焦于两点1 将所有类型的视觉数据转换为统一表示的方法,从而实现生成模型的大规模训练2 对能力和局限性进行定性评估具体的模型和实施细节并不包括在该报告中。

2024-02-16 13:17:49 1516

pandas库学习配套资源

包含CSV文件,JSON文件,有问题数据集CSV文件

2023-02-16

空空如也

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

TA关注的人

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