自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力学习的DS

学的越多,越觉无知

  • 博客(343)
  • 资源 (3)
  • 收藏
  • 关注

原创 训练集、验证集、测试集的本质区别

这时候就需要验证集了,我们可以这样:当我们train一个epoch,也就是完整过完一遍训练集,就把验证集扔进模型,然后产生指标,如果产生的指标在连续若干个epoch都没有精进,那么说明模型泛化能力在走下坡路,赶紧停止train了,这就是早停策略。我们都知道训练集的数据扔进模型,模型前向传播,过损失函数,然后反向传播来更新模型的参数,但是想想,要是没有验证集,我怎么知道什么时候停下来呢?早早学习深度学习,就了解到了训练集、验证集、测试集的概念,训练集好理解,但是验证集和测试集这两个越看越像。

2024-04-22 00:02:47 229

原创 xavier_uniform_、均匀分布、高斯分布初始化嵌入权重

(也叫Glorot uniform initialization) 我觉得是特殊的uniform。

2024-04-08 14:57:02 163

原创 使用subprocess包来在python代码实时查看GPU利用率

最近又被GPU利用率问题导致训练不高效的问题搞到了(恼),所以在py使用代码看看是哪出了问题。

2024-04-04 11:08:42 154

原创 variational approximation posterior distribution (变分近似)

在统计和机器学习领域,我们经常会遇到需要估计后验分布的情况,后验分布是指在给定观测数据后,我们对未知量(比如模型的参数)的不确定性的概率描述。想象你有一堆数据,你想根据这些数据来猜测某些你不知道的量(比如一个事件发生的概率)。在贝叶斯统计中,你会用到后验分布来表达你的猜测。但问题在于,对于很多复杂的模型,这个后验分布非常难以直接计算。这个简单的分布有一些参数,通过调整这些参数,我们使得这个简单的分布尽可能地接近真实的后验分布。这个过程有点像是在不同的简单分布中找到最佳的“替身”来扮演复杂后验分布的角色。

2024-03-27 12:42:50 212

原创 Full-batch Training、Mini-batch Training、Stochastic Training (SGD)

在Mini-batch训练中,数据集被划分为多个较小的批次,每个批次包含多个样本(例如,32、64或128个样本)。这种方法试图在嘈杂的SGD更新和缓慢的全批量更新之间找到平衡,通常可以提供更稳定的收敛,并且相对于全批量训练,可以更有效地利用内存。: 在最纯粹的形式中,SGD每次使用一个训练样本来更新模型的参数。因此,主要区别在于样本数量:SGD理论上每次更新只使用单个样本,而Mini-batch Training每次更新使用多个样本(但不是全部样本,与Full-batch Training相对)。

2024-03-24 19:53:47 251

原创 model.to(‘cuda:0‘) 时,被移动到显存的变量类型

如果你的模型中包含了 Python 原生类型的列表或者 NumPy 数组,它们将保留在 CPU 上的内存中。时,它会将模型的所有参数和缓存(buffers)转移到指定的GPU设备上。这里提到的“参数”通常指的是模型的权重,它们是。仍然在 CPU 的内存中。记住,当你完成 GPU 上的计算后,如果需要将数据从 GPU 再传回 CPU,你可以使用。如果你需要将这些数据结构中的数据用于 GPU 计算,你必须手动将它们转换为 PyTorch 张量,并使用。类型,而“缓存”是指注册为持久状态的张量。

2024-03-19 11:14:18 264

原创 dropout函数和Dropout 类的区别

在 PyTorch 中,dropout 可以以两种方式使用:一种是作为一个独立的函数,另一种是作为一个层。虽然它们在操作上是相似的,但它们在使用上有所不同。

2024-03-18 15:57:09 185

原创 line_profiler逐行分析代码时间

最近model训练有点瓶颈,GPU的利用率总是很低。所以看看能不能使用line_profiler来发现问题。Per Hit: 每次命中(每次执行)平均耗费的时间,单位是微秒。% Time: 该行代码占整个被分析函数总运行时间的百分比。Time: 代码段执行总共耗费的时间,单位是微秒。Line #: 行号,指代码中的行。Hits: 函数或行被执行的次数。

2024-03-15 17:03:52 370

原创 解释multi_update_all函数

节点数据通过 multi_update_all 方法更新,使用了两种聚合方法:内置的 “sum” 和用户自定义的 cross_sum 函数。的那个"sum",合并了边类型’follows’和’attracts’,那对user1来说,就是’follows’的3.0 + 'attracts’上获得的1.0,3.0 + 1.0 = 4.0。user0的给到user1,user1的也给到自己user1,那就已经是1.0 + 2.0 = 3.0了,

2024-03-14 11:31:46 173

原创 不同系统有着不同的文件路径分隔符

是一个错误,特别是如果你在一个基于类 Unix 的系统上运行 Hive。如果在 Windows 上与 Hadoop 交互,有时可能会看到路径使用反斜杠,但是在实际使用中,即使在 Windows 系统上与 Hadoop 进行交互时,建议还是尽可能使用正斜杠(因为 Hadoop 是在类 Unix 系统上开发的,所以在写 Hadoop 文件路径时通常会使用正斜杠(),因为 Hadoop 的内部文件系统(HDFS)遵循 Unix 风格的路径。为了避免混淆,在编写跨平台的代码时,推荐始终使用正斜杠(

2024-03-12 13:46:41 290

原创 TUF 560M-PRO-WIFI报错ACPI

TUF一开始报acpi错误还以为我pe或者主机电源有问题,后面更新一波bios驱动就能进pe了。​12代的cpu有大小核心,用win11会好,因为win11的大小核调度策略优于win10。(一开始下载到了b560国内的驱动报不匹配,后面去台湾下了b560m的驱动才ok)​并且11代以下cpu是全大核,用win10即可;

2024-03-06 14:57:23 200 1

原创 Linux安装mysql的成功记录

【代码】Linux安装mysql的成功记录。

2024-02-21 15:59:40 243

原创 HDFS 命令实操

在hdfs中创建文件夹:/itcast/bigdata,将/itcast/itheima/hosts文件复制到/itcast/bigdata内。将/itcast/itheima/hosts文件重命名为/itcast/itheima/myhost。上传Linux文件系统中的/etc/hosts文件到hdfs的/itcast/itheima内。在hdfs中创建文件夹:/itcast/itheima,如存在请删除(跳过回收站)下载hdfs中上传的文件到Linux文件系统的本地当前目录。删除/itcast文件夹。

2024-02-18 11:46:35 131

原创 HDFS的超级用户

HDFS(Hadoop Distributed File System)和linux文件系统管理一样,也是存在。

2024-02-14 15:28:02 648

原创 SSH免密登录

具体而言,上述命令会生成一个 RSA 类型的密钥对,包括一个私钥和一个公钥。ssh-copy-id 是一个方便的工具,用于将本地用户的公钥添加到远程主机node1的 ~/.ssh/authorized_keys 文件中,从而实现 SSH 免密码登录。公钥文件(默认为 id_rsa.pub): 存储在 ~/.ssh/ 目录下,用于与其他系统共享以进行身份验证。私钥文件(默认为 id_rsa): 存储在 ~/.ssh/ 目录下,用于身份验证。生成的密钥对通常存储在用户主目录下的 .ssh 文件夹中。

2024-02-05 11:04:51 174

原创 AutoDL使用conda运行pytorch、dgl

环境配置要是出现兼容问题还是挺繁琐的。所以这里记录下成功的配置情况。测试代码test.py。

2024-01-30 12:17:24 618

原创 二元交叉熵损失函数(Binary Cross Entropy Loss,BCELoss)是交叉熵损失函数(CrossEntropyLoss)的特殊情况

一直以来看到还以为是很复杂的东西,原来其实是,也就是二元交叉熵损失函数其实就是交叉熵损失函数。

2023-11-11 15:41:27 2041

原创 注意力机制QKV在GAT(Graph Attention Network)的体现

GAT(Graph Attention Network)被称为注意力机制的一种图神经网络,它使用了注意力机制的思想。在GAT中,每个节点与其邻居节点之间的关系被建模为具有不同权重的注意力权重。这就涉及到了注意力机制中的Q(查询)、K(键)和V(数值)的概念。在GAT中,Q、K和V是通过线性变换从节点的特征向量中获得的,那么就和自注意力机制self-attention一样,是和节点的特征向量同源的,也就是Q、K、V都是来源于节点的特征向量,只不过Q、K、V是节点的特征向量的线性变换的产物罢了。这些变换将

2023-10-26 17:07:20 461

原创 对知识蒸馏的一些理解

知识蒸馏是一种模型压缩技术,它通过从一个大模型(教师模型)中传输知识到一个小模型(学生模型)中来提高学生模型的性能。总损失就是一个软损失和硬损失的加权求和。软损失soft loss就是拿。

2023-10-23 19:32:30 228

原创 Reparameterization trick(重参数化技巧)

这个确定性函数通常是一个线性变换,将从标准高斯分布(均值为0,方差为1)中采样的随机噪声与潜在变量的均值和标准差相结合。然后,通过一个神经网络或其他可微分的映射函数,将这个随机噪声向量与模型的均值和标准差参数相结合,生成最终的潜在变量。总之,“Reparameterization trick” 允许模型在训练过程中通过随机采样得到的潜在变量,同时保持了可微性,从而使生成模型更容易优化。:在生成模型中,通常会有一个随机性的潜在变量,例如高斯分布中的均值和方差,用于生成样本。

2023-10-22 11:03:34 2108

原创 nvcc -V和nvidia-smi的关系

nvcc -V的版本号是CUDA工具包的版本信息,而nvdia-smi上面写的很清楚,是cuda的版本号了。都与NVIDIA GPU相关,但它们提供的信息和功能有所不同。

2023-10-19 16:04:07 2020 1

原创 Hard negtive node(硬负样本节点)与 Easy negative nodes(简单样本节点)

顾名思义,是比较硬的,难区分的。"硬负样本"通常指的是那些与positive node正样本节点相似度非常高,难以在潜在空间中与正样本区分开来的负样本。这些节点通常对于训练机器学习模型来说是挑战性的,因为模型需要学会正确地将它们分类为负样本。使用对比学习contrastive learning可能有效开采Hard negtive node。上面的区分开,我觉得都是指节点都变为嵌入向量后再来进行区分,因为在嵌入空间的区分感觉更方便和直观。:和上面一比较,意思是很容易与正样本节点区分开的。

2023-10-15 14:43:49 257

原创 推荐系统领域,over-uniform和oversmoothing问题

总的来说,over-uniform 强调了过度依赖热门物品的问题,而 oversmoothing 强调了过度平滑导致推荐结果不够个性化和多样性的问题。在推荐系统领域,“over-uniform” 和 “oversmoothing” 是与模型性能和推荐结果相关的两个概念,它们通常用于描述模型的行为和性能问题。Oversmoothing 可能会导致推荐结果缺乏多样性,用户得到的推荐很可能与他们以前的行为相似,而忽视了可能的新兴趋势或个性化需求。

2023-10-13 15:11:49 124

原创 可选的优化器:Adam、SGD、Adagrad、RMSprop、Sparse Adam

Adagrad 是一种自适应学习率算法,它根据每个参数的历史梯度来调整学习率。这些优化算法在深度学习中起到关键作用,不同的算法适用于不同的问题和数据集。Adam 通常被认为是一种默认的选择,因为它在许多情况下表现良好。它结合了动量和自适应学习率的特性,能够在训练过程中自动调整学习率。RMSprop 也是一种自适应学习率算法,它使用了类似 Adagrad 的思想,但引入了一个衰减系数来限制历史梯度的影响。这是一些用于训练神经网络和深度学习模型的优化算法,它们用于更新模型的权重以最小化损失函数。

2023-10-10 18:42:12 484

原创 对负采样(negative sampling)的一些理解

这是负采样的一部分,目的是与已观察到的物品 i 进行比较,以计算 BPR 损失,以便推动模型更好地区分用户对已观察到的物品和未观察到的物品的兴趣。这是通过负采样来实现的。具体来说,负采样在这里用于生成未观察到的物品(负样本),以便在BPR损失中比较已观察到的物品和未观察到的物品之间的差异。通过随机或其他采样策略,从未观察到的物品中选择一些物品作为负样本,然后计算它们与已观察到的物品之间的兴趣差异,如公式(15)所示。BPR损失函数的目标是鼓励模型使观察到的物品的预测兴趣高于未观察到的物品的预测兴趣。

2023-09-30 10:36:52 637

原创 图卷积网络(GCN)中应用于推荐系统时,“oversmoothing“(过度平滑)问题

在图卷积网络(GCN)中应用于推荐系统时,"oversmoothing"(过度平滑)是一个重要的问题。这个问题涉及到节点在图中传播信息的过程中逐渐丧失了其初始特征信息,导致节点的嵌入变得过于相似,难以区分不同节点之间的差异。具体来说,oversmoothing 表示在多层 GCN 中,当信息在图上传播时,每一层节点的嵌入变得越来越相似,最终导致节点之间的区分度减弱。这是因为每一层的图卷积操作都会对节点的嵌入进行加权平均(GCN特有的聚合操作),而这种平均会导致信息的混合和平滑。

2023-09-29 15:45:16 283

原创 机器学习---冷启动(Cold Start)、热启动(Warm Start)问题

在冷启动情况下,系统需要处理缺乏历史数据的情况,而在热启动情况下,系统可以充分利用历史数据来进行推荐。解决冷启动问题是推荐系统领域的一个重要挑战,需要创新的方法和技术来应对。在热启动阶段,推荐系统可以依赖用户的历史行为和交互数据来进行推荐,因为系统已经了解了用户的兴趣和喜好。在机器学习和推荐系统领域,“冷启动”(Cold Start)和"热启动"(Warm Start)是两个常用的概念,它们用来描述不同阶段或情境下的推荐问题。冷启动指的是当推荐系统面临一些新的或没有足够历史数据的情况下,如何进行推荐。

2023-09-26 10:51:08 1705

原创 Node2Vec实战---《悲惨世界》人物图嵌入

4. 接下来导入Node2Vec模型,并设置其模型参数,并将最终得到的各个节点的嵌入向量embedding赋予给变量X。上图的效果其实很像原论文里所谓DFS的效果,也就是挖掘同质社群,我觉得更通俗一点,就是相邻的节点其实就是一类。6. 将Embedding用PCA降维到2维,进行节点embedding降维可视化。3. 可视化图,with_labels=True,以此给每个节点的名称显示出来。将词汇表的节点顺序转为networkx中的节点顺序。7. 找到和拿破仑相似的节点。2. 导入内置的数据集。

2023-09-23 13:04:55 379

原创 CSDN博客去水印方法

直接在创作中心这里关了好像就行了,之前方法是找图片链接?后面的一大串字符给去掉。

2023-09-23 12:54:23 82

原创 DeepWalk实战---Wiki词条图嵌入可视化

3. 创建好后,安装必要的工具包,gensim是NLP领域的经常要用的工具包,因为DeepWalk其实就是把NLP中的Word2Vec直接用到图上,所以可以直接用NLP领域的工具包gensim。随机森林这一个节点的具体embedding向量如下,完全符合论文中说的那样,embedding是低维(相比起邻接矩阵n*n,已经变小成n*k了,n为节点数量,k为embedding向量长度)、连续(都是大大小小的连续实数)、稠密(向量中无没用的0元素,如one-hot就一大堆0)的向量。

2023-09-21 15:00:21 655

原创 PageRank实战---西游记人物节点重要度

然后使用zip函数将head和tail两列数据组合成一个新的列表edges,其中每个元素是一个元组,包含一对节点。9. 接着给每个节点、每条边颜色绘制,并且设置每个连接边的透明度等,透明度当然是越靠前的节点越不透明,因为越靠前的节点的PageRank越高,自然越重要,越不能透明。2. 安装完后,导入所需工具包,并且将matplotlib所画的图内嵌到jupyter中,并且设置中文字体等来正确显示汉字。如下,每个节点的名称可以使用G.nodes打印及,len(G)能够打印出来节点的数量。

2023-09-19 18:53:42 312

原创 【深度学习】日常笔记16

X表示该小批次的特征,形状为[batch_size, feature_dim],其中batch_size是小批次的大小,feature_dim是特征的维度。通过独热编码,我们可以将每个类别表示为一个二进制的指示符特征,其中只有一个特征为1,表示当前观测值所属的类别,其余特征都为0。这样做的好处是,通过一次性处理多个样本,可以利用硬件加速的优势,提高训练的效率和速度。在实际应用中,了解数据集的特点和目标任务的要求,以及适应性地选择合适的划分策略,是确保K折交叉验证的有效性的关键。

2023-08-11 14:25:47 578

原创 【深度学习】日常笔记15

样本生成和增强:对目标域的数据进行样本生成和数据增强操作,以增加目标域的样本多样性和丰富性,减小协变量偏移的影响。校正样本权重:通过调整目标域样本的权重,使其在训练中获得更大的关注度,以减小协变量偏移的影响。在实施协变量偏移纠正前,建议首先对数据进行详细的分析和了解协变量偏移的特点,并进行预实验和模型评估来决定合适的方法和策略。如果在训练数据中选择的特征在真实数据中没有重要性或相关性,模型在真实数据上的性能可能会下降。是从真实分布中抽取的所有数据的总体损失的预期,然⽽,这个数据总体通常是⽆法获得的。

2023-07-24 09:37:37 400

原创 【深度学习】日常笔记14

在这个网络中,每一层的隐藏变量h(l)通过变换函数fl(h(l-1))得到,其中l表示层数,h(l-1)表示上一层的隐藏变量。在深层网络中,我们有一系列的变换函数f(l),其中每个函数都作用在前一层的隐藏变量h(l-1)上,以产生当前层的隐藏变量h(l)。· ∂W(l)h(l) 表示将所有∂h(L-1) h(L),∂h(l)h(l+1),∂W(l)h(l)这些项依次相乘。②初始化权重的对称性:如果网络的初始权重具有某种对称性,比如在对称的权重矩阵中,不同的神经元连接具有相同的权重值。

2023-07-24 09:36:40 431

原创 【深度学习】日常笔记13

某个带有x的公式,但是这个x是未知数,还得带入前向传播计算后存储的中间值x才能算出具体的导数值,也就是梯度值。这也是训练⽐单纯的预测需要更多的内存(显存)的原因之⼀,因为预测只需要进行前向传播即可,我们不需要更新参数,因此也不需要进行反向传播。计算的顺序 与前向传播中执⾏的顺序相反,因为我们需要从计算图的结果开始,并朝着参数的⽅向努⼒。综上所述,计算二阶导数需要更多的计算量和内存消耗,预计会比计算一阶导数花费更长的时间。预计计算二阶导数需要更多的计算量和内存消耗,因为需要保留和计算更多的中间结果。

2023-07-17 13:23:51 348

原创 【深度学习】日常笔记12

假设标签是随机均匀分配的,并且有10个类别,那么分类器在测试数据上很难取得⾼于10%的精度,那么这⾥的泛 化差距就⾼达90%,如此严重的过拟合。然⽽也有⼀些例外:⼀些研究⼈员在测试时使⽤暂退法,⽤于估计神经⽹络预测的“不确定性”:如果通过许多不同的暂退法遮盖后得到的预测结果都是⼀致的,那么我们可以说⽹络发挥更稳定。因此,当用这种训练方式得到的网络去处理新的、与训练集不相关的图像时,它的预测能力非常有限,准确率会很低,可能只有不到10%。5. 以本节中的模型为例,⽐较使⽤暂退法和权重衰减的效果。

2023-07-17 13:22:50 339

原创 【深度学习】日常笔记11

在这个例子中,通过将特定参数的梯度计算和更新置于with torch.no_grad()中,with torch.no_grad() 包裹了这个操作,确保在禁用梯度计算这段时间内,PyTorch不会记录这些操作的梯度信息,然后可以将这些参数的requires_grad属性设置为False,从而使得这些参数的梯度计算被禁用,不参与优化过程。当梯度计算出来时,与梯度下降法相比,L1正则化会添加一个额外的惩罚项lambda * sign(w),导致权重向量的更新同时受到梯度和正则化项的影响。

2023-07-17 12:37:46 458

原创 【深度学习】日常笔记10

常常使⽤L2范数的⼀个原因是它对权重向量的⼤分量施加了巨⼤的惩罚,因为开了平方,那大分量开平方会更大,那么惩罚力度也就越大,这使得学习算法偏向于训练出一个在大量特征上均匀分布权重的模型。而L2正则化通过惩罚大型参数,迫使模型在进行优化时更倾向于选择较小的参数值,从而限制了模型的复杂度,减少了过拟合的风险。),会导致训练模型时出现数值不稳定的情况,因为每个特征的尺度不同,可能会导致某些特征对模型的影响更大,从而影响模型的性能。,而不是计算后的结果。较小的λ值对权重w的约束小,较大的λ值对权重w的约束大。

2023-07-07 16:27:26 1285

原创 【深度学习】日常笔记9

神经网络适用于处理大规模的数据集和复杂的非线性问题,具有较强的拟合能力和泛化能力。(generalization error)是指,模型应⽤在同样从原始样本的分布中 抽取的⽆限多数据样本时,模型误差的期望。横轴表示模型复杂度越高,说明d越大,多项式的阶数也就越大,这时候通过观察泛化损失可以很好的看多项式拟合是欠拟合、最佳还是过拟合了。测试数据集应该是模型之前未见过的数据,用于检验模型的真实性能。1. 可调整参数的数量。两种写法是等价的,它们都选择了相同的行,没有指定列的范围,因此默认选择所有列。

2023-07-07 16:26:25 601

原创 【深度学习】日常笔记8

总之,涉及多个超参数的模型训练更具挑战性,因为它涉及到更多的复杂性、难以解释的行为、过拟合和欠拟合的风险、计算资源需求以及时间需求。K折交叉验证是一种常用的模型评估方法,它将数据集分成K个子集,每次使用其中的K-1个子集作为训练集,剩下的一个子集作为测试集。总之,要构建一个聪明的策略来搜索多个超参数,需要选择合适的超参数空间、使用网格搜索、随机搜索或贝叶斯优化等方法来搜索最优的超参数组合,并使用交叉验证来评估不同超参数组合的性能。这意味着需要更多的数据来确定每个超参数的最佳值,从而增加了模型训练的复杂性。

2023-07-01 14:35:11 560

数据集UCF101 + CRNN模型 + 模型预测结果

使用UCF101完成的视频动作分类识别,使用CRNN模型完成,迭代次数为120,花了很多时间和钱(),不过因为模型参数pth太大了,CSDN放不下,需要再私聊吧

2023-05-06

数据集UCF101 + Conv3D模型 + 模型预测结果

使用UCF101完成的视频动作分类识别,使用Conv3D模型完成,不过因为模型参数pth太大了,CSDN放不下,需要私聊吧

2023-05-05

复杂网络的任意子节点间的网络最短距离的求解 最小斯坦纳树---python代码(含输入数据、绘图代码、解题代码、csv生成文件)

复杂网络的任意子节点间的网络最短距离的求解 最小斯坦纳树---python代码(含输入数据、绘图代码、解题代码、csv生成文件)

2022-06-02

随机点号器 v.1.0.cpp

C++实现随机点名器 版本v1.0 1.支持文件读入(txt文本文件) 2.支持手动输入 3.不重复点名

2020-05-04

连点器1.0.exe

挺有意思的鼠标连点器~ *支持锁定和解锁鼠标位置; *貌似BUG有点多,而且按键有时候控制不了 *希望今后可以改善下

2020-02-20

空空如也

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

TA关注的人

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