![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python_算法学习
文章平均质量分 75
集中于python的算法学习
高山莫衣
像高山一样崇高的品德和行为,不需要华丽的衣服来装饰。
展开
-
Python生成模拟数据、随机文本-Faker库
Faker是一个用于生成虚假数据的Python库,它提供了一种简单而强大的方式来生成各种类型的随机数据,包括姓名、地址、电子邮件、文本、日期、数字等。这对于进行测试、填充数据库或者生成模拟数据是非常有用的。原创 2024-02-03 21:21:18 · 766 阅读 · 1 评论 -
AttributeError: cannot assign module before Module.__init__() call 解决方法
方法之外对模块中的某些成员进行了初始化或赋值操作,导致模块还没有被完全初始化就已经被调用了。为了解决这个问题,需要将所有的初始化或赋值操作移到。方法中进行所有的初始化和赋值操作,确保模块中的所有成员都在。方法内被正确初始化后再进行调用即可避免出现。,并且想要在其中定义一个类变量。例如,如果有一个自定义模块。这个错误通常是由于在。原创 2023-12-06 13:07:36 · 1706 阅读 · 0 评论 -
jieba分词有哪些模式?
jieba分词库提供了三种分词模式:精确模式、全模式和搜索引擎模式。原创 2023-12-01 20:05:03 · 4456 阅读 · 0 评论 -
质量分测试
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S原创 2023-08-02 17:54:22 · 112 阅读 · 0 评论 -
完全去中心化的学习(Fully Decentralized Learning)
完全去中心化的学习是一种使用区块链技术实现的机器学习方法,其中参与者可以在不需要信任中心的情况下共同训练模型。数据隐私性更好:传统的集中式学习方法中,数据会被集中在一个地方,容易遭受黑客攻击或数据泄露,而完全去中心化的学习可以使数据分散存储在多个节点上,提高了数据隐私性。模型的收敛速度较慢:完全去中心化的学习需要多个节点共同训练模型,从而可能导致模型的收敛速度较慢。不需要信任中心:完全去中心化的学习没有信任中心,每个节点都是平等的,从而避免了单点故障的风险。原创 2023-04-25 21:04:36 · 661 阅读 · 0 评论 -
去中心化联邦学习-Python实现的2个案例
随着人工智能技术的发展,越来越多的数据被收集和使用。然而,这些数据通常分散在不同的设备上,例如移动设备、传感器等。联邦学习(Federated Learning)是一种解决这个问题的方法,它允许在不将数据传输到中央服务器的情况下进行模型训练。但是,联邦学习也存在一些问题,例如数据隐私保护、通信效率等,并且有些应用场景需要更高的安全性和去中心化的特性。因此,出现了去中心化的联邦学习(Decentralized Federated Learning)。原创 2023-03-23 09:04:08 · 1966 阅读 · 8 评论 -
自编码器-变分自编码器-python案例
自编码器通过将数据压缩成低维表示并重建原始数据来实现降维和去噪声等任务,而变分自编码器则使用潜在空间中的高斯分布进行更加精细的压缩和解压缩,并可以生成新的样本。变分自编码器是一种基于概率的自编码器,它使用潜在空间中的高斯分布来实现更加精细的压缩和解压缩。与普通的自编码器不同,它不仅学习如何对数据进行编码和解码,还会学习如何生成新的样本。生成新样本时,需要先从高斯分布中采样一个潜在变量,再通过解码器将其映射回数据空间中进行图像生成,但生成的结果有时会存在一些不连续的情况,需要注意调整采样和解码器的参数。原创 2023-03-30 09:44:16 · 993 阅读 · 3 评论 -
小梯度抽样(low-gradient sampling)思想和python案例
其核心思想是在寻找最优解的过程中,不仅考虑当前位置的梯度信息,还考虑之前位置的梯度信息。然后,我们使用小梯度抽样的方法计算出当前位置的低梯度(即考虑之前位置的梯度信息)。最后,我们根据当前位置的低梯度和学习率来更新当前位置,并将当前梯度信息保存下来,以备下一次迭代使用。通过使用前一次迭代的梯度信息和当前梯度信息的加权平均值,我们可以更好地控制梯度信息的变化,从而避免算法陷入局部最优解。这份代码的实现是基于机器学习中的优化算法,其中小梯度抽样是其中一种常见的技术之一。原创 2023-03-23 02:02:43 · 244 阅读 · 0 评论 -
PyTorch中的9种常见梯度下降算法与案例
Adam是一种融合了动量梯度下降和自适应学习率的优化算法,在更新参数时既考虑历史梯度的加权平均又考虑历史梯度平方的加权平均。小批量梯度下降是介于批量梯度下降和随机梯度下降之间的梯度下降算法,即每次更新时选取一定数量的样本进行梯度计算和参数更新。RMSprop是一种自适应学习率的优化算法,在更新参数时根据历史梯度平方的加权平均来动态调整每个参数的学习率。批量梯度下降是最基础的梯度下降算法,通过使用全部训练数据计算损失函数的梯度来更新参数。在PyTorch中,可以通过定义损失函数和优化器来实现批量梯度下降。原创 2023-03-27 13:34:29 · 1638 阅读 · 0 评论 -
从样本中抽样的Python技术
在数据分析和机器学习中,我们经常需要从给定的样本中进行随机抽样。Python提供了多种方法来执行此操作,下面将介绍其中的几种方法。简单随机抽样是指从总体中随机地选取一些个体组成样本,每个个体被选中的概率相等。在Python中,可以使用random.sample()函数实现简单随机抽样。例如,从数值列表[1, 2, 3, 4, 5]中随机抽取3个数:输出:2. 分层随机抽样在某些情况下,我们希望从不同层次的群体中进行抽样,这就需要用到分层随机抽样。在Python中,可以使用pandas.DataFram原创 2023-03-27 13:12:49 · 2405 阅读 · 0 评论 -
Python算法学习[12]—小游开发&算法实现
如果猜测的数字太低,函数会打印出“Too low”的消息,否则打印出“Too high”的消息,并提示用户再次猜测。本文介绍了如何使用Python语言来创建一个简单的小游戏——猜数字游戏,并提供了Python代码来实现这个游戏。猜数字游戏是一种简单而有趣的游戏。游戏规则很简单:玩家需要猜一个随机生成的数字,如果猜对了,就胜利了。如果没有猜对,游戏会提示玩家他们猜的数字是太高还是太低,并允许他们继续猜测,直到猜对为止。从结果中,我们可以看到猜数字游戏的实现能够正确地工作,玩家成功地猜到了随机生成的数字。原创 2023-03-23 02:03:24 · 915 阅读 · 0 评论 -
Python算法学习[11]—图像问题&问题描述与实现
本文介绍了两个常见的图像问题:图像旋转和图像缩放,并提供了Python代码来实现这些问题的解决方案。图像旋转是指将图像按照一定角度进行旋转,使得图像中的物体或者场景能够呈现出不同的角度和视角。在计算机视觉中,图像处理是一个重要的领域。本文将介绍两个常见的图像问题:图像旋转和图像缩放,并提供Python代码来实现这些问题的解决方案。图像缩放是指改变图像的大小,通常用于调整图像的分辨率或适应不同的显示设备。从结果中,我们可以看到这些图像问题的实现能够正确地工作,原始图像被旋转了45度,并且被缩小了50%。原创 2023-03-23 02:05:48 · 195 阅读 · 0 评论 -
Python算法学习[10]—经典算法问题的解决&算法分析与实现
反之,如果中间项小于目标值,则说明目标值可能存在于数组的右半部分,因此low变量将被更新为mid + 1。随后,它将列表拆分为两个更小的子列表:一个子列表包含所有比枢轴小的元素,另一个子列表包含所有大于或等于枢轴的元素。对于每个未访问的相邻节点,它计算到该节点的费用,并将其加入堆队列中。本文介绍了三个经典的算法问题:快速排序、最短路径和二分查找,并提供了Python代码来实现这些问题的解决方案。本文将介绍三个经典的算法问题:快速排序、最短路径和二分查找,并提供Python代码来实现这些问题的解决方案。原创 2023-03-23 02:06:02 · 200 阅读 · 0 评论 -
Python算法学习[9]—常见典型的数学问题&代码求解
本文介绍了三个常见的数学问题:质数判断、斐波那契数列和最大公约数,并提供了Python代码来实现这些问题的解决方案。它使用一个while循环,反复将较小的数字作为被除数,将余数作为除数,直到余数为零。然后,它遍历从2到数字平方根之间的所有数字,并检查它们是否能够整除该数字。在计算机科学中,数学问题是一种经典的编程问题。本文将介绍三个常见的数学问题:质数判断、斐波那契数列和最大公约数,并提供Python代码来实现这些问题的解决方案。该函数通过填充前两个数字(1, 1),并迭代添加后续数字来生成斐波那契数列。原创 2023-03-23 02:04:10 · 639 阅读 · 0 评论 -
Python算法学习[8]—经典数据结构问题&具体实现
本文介绍了三种经典的数据结构问题:栈、队列和链表,并提供了Python代码来实现这些问题的解决方案。这些数据结构在计算机科学中有着广泛的应用,具有较高的效率和可扩展性。希望通过本文的介绍,您能够更好地理解和掌握这些数据结构的原理和实现方法。原创 2023-03-22 00:08:37 · 121 阅读 · 0 评论 -
Python算法学习[7]—内部排序算法&技术解惑
接下来,使用一个for循环遍历数组中的每一个元素,并将小于等于pivot的元素与大于pivot的元素分别放置在左右两侧,并将i逐步向右移动。本文将介绍四种常见的内部排序算法:冒泡排序、选择排序、插入排序和快速排序,并提供Python代码来实现这些算法。在上述代码中,我们使用一个for循环来遍历整个数组,并使用一个while循环来将未排序的元素插入到已排序的部分中。插入排序是一种简单的排序算法,它将未排序的元素依次插入到已排序的部分中,从而逐步构建有序序列。原创 2023-03-22 00:10:00 · 173 阅读 · 0 评论 -
Python算法学习[6]—查找算法:表、树、散列、斐波那契查找算法&实践操作
在上述代码中,我们定义了一个fibonacci_search()函数,接收两个参数:arr表示待查找的数组,x表示要查找的元素。然后,设置offset初值为-1,并在while循环中继续查找元素,每次根据目标元素与当前位置的大小关系,选择左半部分或右半部分继续查找。本文介绍了四种常见的查找算法:表查找算法、树查找算法、散列查找算法和斐波那契查找算法,并提供了Python代码来实现和测试这些算法。在上述代码中,linear_search()函数接收两个参数:arr表示待查找的数组,x表示要查找的元素。原创 2023-03-22 00:09:45 · 340 阅读 · 0 评论 -
Python算法学习[5]—图、遍历、连通、最短路径&代码演练
如果该顶点未被访问,则将其加入visited集合,并遍历与该顶点相邻的顶点,更新其距离值并加入队列中等待遍历。然后,进入循环,每次从队列中取出一个顶点并进行判断,如果该顶点未被访问,则加入visited集合,并输出该顶点。Dijkstra算法是一种贪心算法,其思路是从起始顶点开始,选择当前距离该顶点最近的未访问过的顶点,并更新与该顶点相邻的顶点的距离值。广度优先搜索(BFS)是一种迭代方式的图遍历算法,其思路是从起始顶点开始,按层次逐步扩展,先遍历与起始顶点相邻的所有顶点,然后遍历与这些。原创 2023-03-21 13:46:09 · 1705 阅读 · 1 评论 -
Python算法学习[3]—线性表、队列和栈&实践演练
is_empty()方法用来检查队列是否为空,enqueue()方法用来在队尾添加元素,dequeue()方法用来从队首删除元素,peek()方法用来获取队首元素但不删除,size()方法用来获取队列中元素的数量。is_empty()方法用来检查栈是否为空,push()方法用来在栈顶添加元素,pop()方法用来从栈顶删除元素,peek()方法用来获取栈顶元素但不删除,size()方法用来获取栈中元素的数量。例如,对于字符串"(((([[]])))))",我们可以通过栈来实现括号匹配检查。原创 2023-03-21 13:35:58 · 251 阅读 · 0 评论 -
Python算法学习[4]—树、二叉树、霍夫曼树&算法实现
然后不断从堆中弹出两个权值最小的节点,将它们合并成一个新的节点,并将该节点再次插入堆中,直到只剩一个节点为止。该树的构建过程是将权值最小的叶子节点不断合并,直到所有节点都合并为根节点为止。通常情况下,频繁出现的字符会被赋予较短的编码,而不常用的字符则会被赋予较长的编码。在上述代码中,BinaryTreeNode类表示二叉树的节点,其中包含该节点的值、左子节点和右子节点。在上述代码中,Node类表示树的节点,其中包含该节点的值和子节点列表。二叉树和霍夫曼树是树的两个变种,也是常用的算法和数据结构。原创 2023-03-21 13:29:09 · 270 阅读 · 0 评论 -
基于Brat标注数据集的python包network网络构建和搜索
在知识图谱的文本标注任务中,需要将数据按照事先决定的标注规则进行人工标注。Brat是一种比较著名的标注工具,但是目前不支持Windows系统,你可以安装虚拟机使用该工具。本文已经完成了一项基于Windows、Python3.7的标注软件制作工作,你可以点击实体关系文本标注工具进行查看。倘若你是使用的Brat标注工具, 并且对于Neo4j图数据库不是很熟悉,那你可以考虑使用Python中的network第三方库,在初步学习阶段实现demo,在下一篇文章中,将会介绍Neo4j的使用案例。原创 2023-03-12 16:37:10 · 626 阅读 · 1 评论 -
联邦学习算法介绍-FedAvg详细案例-Python代码获取
在DP-FedSGD中,被选中的参与方使用全局模型参数对局部模型进行初始化,通过批梯度下降法进行多轮梯度下降,计算梯度更新量。而在DP-FedAVG中,是利用一个批次的数据进行一次梯度下降,计算梯度更新量。由服务端收集各客户端的梯度信息,通过聚合计算后再分发给各客户端,从而实现多个客户端联合训练模型,且“原始数据不出岛”,从而保护了客户端数据隐私。假设中心方是好奇的,那么客户端通过某种规则向其他客户端广播梯度信息,收到梯度信息的客户端聚合参数并训练,将新的梯度信息广播。面向神经网络模型, 假设网络总共有。原创 2023-03-12 10:36:34 · 20424 阅读 · 124 评论 -
从0开始学pytorch【2】——手写数字集案例
在整个数据集上迭代3次,且数据集划分了batch,每用一个batch就更新一次梯度,这就是小批量梯度下降法。在学习pytorch之前,本文通过手写数字集简单案例介绍pytorch深度网络基本流程,即先加载数据、建立模型, 然后模型训练和测试。,那么一种有12批数据,前11批数据都有batch_size那么多的样本,最后一批数据只有一个样本,它是样本数据的互斥完备划分。,是否为训练集,是则为训练集60k数据,否则为测试集10k数据;,如此循环迭代直至结束。每次计算出的新的参数,都会替代原先的参数,或者。原创 2023-03-11 22:15:41 · 353 阅读 · 2 评论 -
从0开始学pytorch【1】--线性函数的梯度下降
在正式学习pytorch深度框架之前,假设你已经掌握了机器学习、深度学习的梯度下降算法基础理论,但是编程技术还不够熟练,于是本文将使用python演示如何利用梯度下降法求解一元线性回归中的参数。分别为5.015464和2.77148,这总体设置的5和3很接近。前提是我们并不知道参数真实值为5和3,于是就用参数估计值5.015464和2.77148去替代总体参数。设置初始参数均为0,学习率为0.0001,迭代40000次,最后输出结果。可以对比看迭代前后的损失,设置初始参数,并输出迭代后的参数估计值。原创 2023-03-11 21:00:01 · 466 阅读 · 2 评论 -
Python算法学习[2]—算法思想&实践演练
算法思想有很多,例如枚举、递归、分治、贪心、试探法、动态迭代和模拟等。本文将详细讲解常用的算法思想的基本知识以及实践演练,从而理解并掌握这些算法思想的基本用法和核心知识。原创 2021-04-18 23:46:25 · 521 阅读 · 0 评论 -
Python算法学习[1]—算法简介&数据结构
本文简单介绍了算法的含义以及数据结构的三种类型,并用代码进行演示。算法是一系列解决问题的清晰指示,数据结构的作用是保存项目中的数据信息。原创 2021-04-16 18:43:22 · 1741 阅读 · 11 评论