自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EM算法讲解

简化难解问题:将复杂问题分解成可迭代的两步,分别计算期望和最大化。辅助似然计算:通过估计隐变量的期望,帮助间接地优化似然函数。增强解释力:帮助模型更好地捕捉数据的潜在结构。处理缺失数据:有效应对部分数据缺失的情况。隐变量在EM算法中起到了核心的连接作用,使得算法能够在存在未观测变量或复杂概率分布的情况下,依然有效地进行参数估计。高斯混合模型是一种常用的聚类算法,用于将数据划分为多个簇,每个簇由一个高斯分布(即正态分布)来描述。

2024-09-21 20:04:26 784

原创 什么叫后验分布

后验分布(Posterior Distribution)是在贝叶斯统计中一个重要的概念。它指的是在观测到数据之后,对参数或潜变量的分布的更新。具体来说,后验分布是基于先验分布(Prior Distribution)和似然函数(Likelihood Function)通过贝叶斯定理计算得到的。

2024-09-21 16:59:52 113

原创 生成模型可以用编辑距离作为损失函数么

研究人员也在探索将离散的损失函数(如编辑距离)转换为近似可微的形式,从而可以在训练中使用。比如,通过设计一种软近似的编辑距离,使得它在模型训练中可以作为一个损失函数来使用。

2024-09-18 10:21:59 316

原创 GAN如何使用的 Jensen-Shannon 散度

GAN 使用Jensen-Shannon 散度来衡量生成分布PgP_gPg​和真实数据分布PrP_rPr​的差异,这是原始 GAN 损失函数的核心。然而,由于 JS 散度的梯度消失问题和训练不稳定性,后来如 WGAN(Wasserstein GAN)通过 Wasserstein 距离代替了 JS 散度,解决了这些问题。

2024-09-17 15:43:03 618

原创 WGAN算法

给定两个概率分布PrP_rPr​和PgP_gPg​WPrPginf⁡γ∈ΠPrPgExy∼γ∥x−y∥WPr​Pg​γ∈ΠPr​Pg​inf​Exy∼γ​∥x−y∥其中ΠPrPgΠPr​Pg​是所有将PrP_rPr​变为PgP_gPg​的联合分布,∥x−y∥\|x - y\|∥x−y∥表示从PrP_rPr。

2024-09-17 15:39:11 822

原创 解释下不同Gan模型之间的异同点

相同点所有 GAN 模型都基于生成器和判别器之间的对抗性训练机制。基本目标是让生成器生成的样本尽可能接近真实样本,同时让判别器能够有效地区分真实样本和生成样本。不同点损失函数:不同的 GAN 变体使用了不同的损失函数和衡量标准来改进模型的训练稳定性和性能,如 WGAN 使用 Wasserstein 距离,WGAN-GP 使用梯度惩罚。网络结构:DCGAN 引入了卷积网络,StyleGAN 引入了风格模块,PGGAN 逐步增加图像分辨率。特定任务优化。

2024-09-17 10:26:08 695

原创 模型训练的过程中对学习不好的样本怎么处理更合适

处理学习不好的样本的方法包括样本加权、数据增强、样本重采样、难例挖掘、模型调整、学习率调整和后处理技术。具体采用哪种策略,取决于你的模型、数据以及训练目标。调整这些策略可以有效地改善模型对困难样本的学习效果。

2024-09-17 00:07:58 413

原创 如何避免长距离遗忘问题

避免长距离遗忘问题的关键是选择合适的网络结构和机制,这些结构和机制能够有效地捕捉和利用长距离的信息。LSTM、GRU、Transformer、注意力机制和记忆网络都是解决这一问题的有效方法。结合这些技术可以帮助构建更强大的序列建模系统。

2024-09-16 11:57:16 401

原创 常见生成模型有哪些?生成模型前后存在依赖关系,怎么处理更合适

生成模型包括 GANs、VAEs、自回归模型、流模型和扩散模型等,它们各有优点并适用于不同的生成任务。处理生成模型中的前后依赖关系可以通过条件生成、序列建模、自回归生成、模型融合和后处理等策略来实现,具体选择取决于任务的需求和数据的特点。

2024-09-16 11:43:55 297

原创 KL散度非负性证明

KL散度(Kullback–Leibler divergence) 定义如下:DKL​i1∑n​Pxi​×logQxi​Pxi​​目标:证明上式非负。

2024-09-16 10:13:48 502

原创 Kullback–Leibler divergence讲解

是一种用于衡量两个概率分布之间差异的非对称度量。它衡量的是一个分布如何偏离另一个分布。通常,KL 散度用于量化一个分布Q与一个真实分布P之间的差异。

2024-09-16 09:17:21 858

原创 c++ sort 自定义排序

/ 自定义比较函数// 降序排序// 使用自定义比较函数进行排序// 输出排序后的结果return 0;在 C++ 中,自定义排序函数用于决定两个元素的相对顺序。std::sort函数的比较函数通常是二元谓词,它应该返回一个布尔值来指示元素的顺序。如果返回true,那么第一个参数会被排在第二个参数之前。如果返回false,则第一个参数会被排在第二个参数之后。a > b。

2024-09-10 11:10:48 547

原创 文本规则发现有什么算法

文本规则发现的算法和方法有很多,选择哪种方法取决于数据的特点和任务需求。常见的算法包括频繁模式挖掘、序列模式挖掘、文本聚类、关联规则挖掘、规则归纳、依存关系分析等。此外,深度学习模型(如 Transformers)在现代文本规则发现中也显示出巨大的潜力,可以用于发现更为复杂的隐含规则和模式。

2024-09-05 18:57:27 850

原创 调度器scheduler保留什么参数

学习率调度器的状态文件包含了用于恢复训练时必要的所有信息,以确保学习率的调整可以从中断点继续。保存这些状态信息可以使训练过程更加稳定,并避免从头开始调整学习率。

2024-09-02 16:59:48 568

原创 pytorch模型保存及加载参数恢复训练的例子

在恢复训练时,优化器不需要重新传递是因为它在初始化时已经绑定了模型参数,并且这些引用在模型权重加载后仍然有效。优化器只需要恢复它的状态,就可以继续操作绑定的模型参数。

2024-09-02 16:28:50 907

原创 git 提交代码由原先账号密码调整为ssh

完成上述步骤后,你的 Git 提交代码将使用 SSH 密钥进行身份验证,而不再需要输入用户名和密码。如果一切设置正确,你应该看到一条欢迎消息或成功连接的提示。确保显示的 URL 使用 SSH 协议(按照提示选择保存位置(默认是。替换为你的用户名和仓库名。)和设置密码(如果需要)。

2024-09-01 23:15:05 945

原创 如果已经提交,重新添加gitignore文件,会忽略么

如果文件已经被提交到 Git,添加.gitignore不会自动忽略该文件。你需要使用来停止跟踪这些文件,然后再将它们添加到.gitignore文件中。

2024-09-01 08:00:38 613

原创 git branch 不显示分支名称

确保当前目录是一个有效的 Git 仓库。确认仓库中有分支,至少有一次提交。使用检查当前所在的分支或 HEAD 状态。检查.git目录是否存在。查看本地和远程所有分支的状态。如果你依然无法显示分支名称,可以提供更多的上下文信息或错误输出,我可以进一步帮助你排查问题。

2024-09-01 07:48:34 636

原创 在gitignore忽略目录及该目录下的子文件

使用来忽略整个目录及其所有内容。如果需要排除某些文件或子目录,可以使用!语法来例外处理。这样配置后,Git 将自动忽略你指定的目录及其内容。

2024-09-01 07:44:00 419

原创 gitlab 包含模型文件,比较大,怎么上传

Git LFS是管理 Git 仓库中的大文件的最佳选择。如果模型文件非常大,使用外部存储可能会更合适。调整 Git 的配置可以帮助解决某些上传问题,但并不适合长期处理大文件。选择适合你项目的方案,可以确保大文件被正确上传和管理。

2024-09-01 07:38:27 1324

原创 在 C++ 中,成员变量 vector 的初始化不能在类的定义中使用构造函数的参数。

类定义中的初始化:在类的定义中直接初始化复杂成员(如)通常只能使用默认值,不能使用构造函数参数进行复杂初始化。构造函数初始化列表:对于需要根据构造函数参数初始化的复杂成员变量,使用构造函数初始化列表是一种有效的方法。这样做是为了保持类的定义简洁,同时允许通过构造函数进行更复杂的初始化操作。

2024-08-27 13:35:52 328

原创 Git基础知识

git branch输出中带有符号的分支就是当前所在的分支。

2024-08-19 19:06:21 1295

原创 yield的使用

yield用于创建生成器函数,它允许函数在生成每个值时暂停并恢复执行。生成器函数与普通函数的主要区别在于使用yield代替return。生成器是内存高效的,适合处理大数据集或无限序列。生成器表达式是创建生成器的另一种简便方法。yield提供了一个强大且灵活的方式来处理数据流和迭代任务,避免了一次性处理大量数据带来的内存开销。

2024-08-07 14:05:34 307

原创 摩尔投票算法的核心思想

摩尔投票算法(Moore’s Voting Algorithm),通常被称为“投票算法”,是一种用于在众多元素中找出出现次数超过半数的元素(即多数元素)的高效算法。这种算法特别适用于解决“多数元素问题”,即在一个序列中找出一个出现次数超过n/2的元素(如果存在的话)。

2024-07-30 14:38:45 296

原创 同步库如何转化为异步,使用协程

将同步库转化为异步:使用和可以在异步代码中运行同步函数,但这种方式不会完全发挥异步的优势。使用原生异步库:如果可能,使用原生异步库(如aiohttp)是更优的选择,因为它们本身设计为异步操作,能更好地处理并发和 I/O 操作。

2024-07-21 09:57:52 416

原创 TabError: inconsistent use of tabs and spaces in indentation python

在 Python 编程中,缩进是一种非常重要的语法元素,因为它决定了代码块的层次结构。Python 不允许在同一个文件中混用 Tab 和空格进行缩进,这样做会导致错误。

2024-07-17 10:40:48 1093

原创 如何设计统计量及相关假设检验

选择合适的统计量(statistic)进行假设检验是统计分析中的关键步骤,具体的选择取决于数据的性质、样本量、研究问题以及假设检验的类型。下面是选择合适统计量的一些指导原则和常见的统计量。根据这些信息,我们可以选择 独立样本 t 检验 来比较两组学生的考试成绩是否有显著差异。通过以上步骤和指导原则,可以有效选择合适的统计量来进行假设检验,从而得出可靠的结论。根据样本量选择合适的检验方法(如 t 检验或 Z 检验)。根据假设检验的类型(如单尾或双尾检验)选择适当的统计量。根据数据类型和分布选择合适的统计量。

2024-07-16 10:04:15 833

原创 ubuntu显卡驱动重启后失效的解决办法

写在前方:ubuntu系统,显卡重启后驱动失效,显卡不可用。网上冲浪之后得以有效解决,以下是解决方案。修复,它能够维护内核外的驱动程序,并且在内核版本变化后自动生成新的模块。4、检查驱动是否可用:nvidia-smi。系统内核升级,与原驱动信息不匹配。不建议重新安装驱动,可通过。2、查看驱动版本信息。

2024-07-12 14:13:45 481

原创 容器按↑还是不显示上一个命令

如果在容器内设置了 .bash_history 文件和 HISTFILE 环境变量,但仍然无法通过按 ↑ 显示上一个命令,这可能是因为 Bash 的历史记录功能未正确配置。

2024-07-11 14:03:23 406

原创 python多进程刻画进度及join卡住问题

以下是一个示例代码,展示了如何启动 4 个进程来处理 20 个任务,并实时显示进度。在 Python 中使用多进程处理多个任务并刻画当前进度,你可以使用。python多进程启动4个任务,当前共20个任务,如何刻画当前进度。模块和一个共享变量(如。

2024-07-10 14:22:26 227

原创 kitware安装cmake报错

【代码】kitware安装cmake报错。

2024-07-05 17:49:32 141

原创 最小生成树(Minimum Spanning Tree, MST)

以下是Prim算法在C++中的实现。这个实现使用了优先队列(堆)来选择权重最小的边,并逐步构建最小生成树。中,使得所有节点连通且总权重最小的一棵树。设置图的顶点和边,调用 Kruskal 算法并输出最小生成树。实现Prim算法,使用优先队列(最小堆)来选择最小权重的边。并查集实现,用于管理顶点集合,并支持路径压缩和按秩合并。以下是Kruskal算法在C++中的实现。:设置图的顶点和边,调用Prim算法并输出最小生成树。这个实现适用于任意无向加权图,并高效地找到最小生成树。Kruskal算法的实现。

2024-07-01 10:25:42 1039

原创 C++ 运算符的优先级和结合性表

&^&&?

2024-06-28 17:19:28 347

原创 重新夺回对 /etc/resolv.conf 的控制权

随着 Linux 的不断发展壮大,涌现出了各种各样的 DNS 自动管理程序,它们都想要直接获得的控制权,有些人欣然接受,有些人则无法接受。如果你是无法接受的那一方,那么请继续往下看,我会教你如何识别出是哪些程序在控制你的文件,以及如何夺回控制权。目前能够控制。如果你的文件正在被它们控制,那么你对该文件的任何修改都会在几分钟后被覆盖,或者重启后被恢复成原来的值。要想重新夺回对的控制权,首先就要识别出是谁在控制这个文件。

2024-06-22 14:46:52 1147

原创 Ubuntu 20.04 DNS解析原理, 解决resolv.conf被覆盖问题

开机后不能上网,不能ping 通,错误为:ping: baidu.com: 域名解析暂时失败修改文件,添加再, 可以ping 通, 可以正常上网.但是,当重新启动机器后,文件被覆盖为旧的文件,要想上网, 还需要重新修改文件内容.解决问题的方法很简单,只需要看第7步即可.即修改,添加。

2024-06-22 13:36:47 1256 1

原创 防火墙规则来阻止攻击者的 IP 地址

要禁止服务器与特定 IP 地址的通信,可以使用防火墙来设置规则。在 Ubuntu 上,iptables 是一个常用的防火墙工具。这些步骤可以帮助你禁止服务器与特定 IP 地址的通信。如果有其他防火墙工具或更高级的需求,可以根据实际情况选择合适的解决方案。在生产环境中,执行这些命令前需要小心,防止误操作导致服务器无法访问。确保在执行防火墙规则前备份当前的规则设置,以防出错。

2024-06-14 14:41:58 564

原创 差分数组算法

对于数组aaa,定义其差分数组(difference array)为dia0i0ai−ai−1i≥1dia0ai−ai−1​i0i≥1​性质 1:从左到右累加ddd中的元素,可以得到数组aaa。性质 2:如下两个操作是等价的。把aaa的子数组aiai1⋯ajaiai1⋯aj都加上xxx。把did[i]di增加xxx,把dj1d[j+1]dj1减少xxx。

2024-05-15 10:00:16 874

原创 函数指针和指针函数的区别

函数指针(function pointer)和指针函数(pointer to function)是两个不同的概念,它们在语义上有很大的区别。parametersintintparametersint*int总结起来,函数指针是指向函数的,而指针函数是返回指针的。因此,虽然两者在语法上很相似,但它们所指向的东西是不同的,因此也有了不同的名称。

2024-05-11 10:35:36 1439

原创 二叉树遍历算法

【代码】二叉树遍历算法。

2024-05-09 17:56:04 230

原创 python 调试 c++源码

cmake设置debug。被设置为 Debug。和-O0表示禁用优化。-Wall启用所有编译警告。-g和-ggdb添加调试信息。请根据您的具体编译器和构建环境调整编译选项。

2024-04-25 10:06:01 365

空空如也

空空如也

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

TA关注的人

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