算法
文章平均质量分 89
山阴少年
这个作者很懒,什么都没留下…
展开
-
数组排序——从荷兰国旗问题到快速排序
本文介绍了荷兰国旗问题,并将其扩展至排序排序,并介绍了两种快速排序的算法,最后再用ChatGPT来实现快速排序。原创 2023-05-25 23:20:37 · 628 阅读 · 0 评论 -
PyTorch入门(七)TensorBoard入门
本文将会介绍PyTorch中的TensorBoard的使用。原创 2023-03-20 12:30:03 · 1168 阅读 · 0 评论 -
数组排序之归并排序
归并排序(Merge Sort)是数组排序算法中一种常见的算法,其主要思想为经典的“分治思想”。本文将介绍数组排序算法中的归并排序,并介绍其相关应用。原创 2022-11-11 19:22:43 · 1914 阅读 · 0 评论 -
PyTorch入门(三)模块的保存与加载
本文将介绍如何使用PyTorch保存模块和加载模型。原创 2021-12-04 12:25:52 · 2059 阅读 · 1 评论 -
PyTorch入门(二)搭建MLP模型实现分类任务
本文将会介绍如何使用PyTorch来搭建简单的MLP(Multi-layer Perceptron,多层感知机)模型,来实现二分类及多分类任务。原创 2021-12-03 22:42:01 · 18517 阅读 · 3 评论 -
tensorflow(10)使用Prometheus对tensorflow/serving进行服务监控
在之前的文章tensorflow(6)利用tensorflow/serving实现模型部署及预测中,笔者介绍了如何使用tensorflow/serving对单模型、多模型、不同版本模型进行部署及预测。本文将在此基础上,使用Prometheus对tensorflow/serving进行服务监控。 网上虽然有很多关于tensorflow/serving的服务监控的配置说明,但大多只是简单介绍,并没有给出具体的使用方式。本文将给出一个详细使用例子。 在此,我们只需要了解Prometheus是一款监控原创 2021-02-25 16:34:55 · 922 阅读 · 0 评论 -
tensorflow(7)利用tensorflow/serving实现BERT模型部署
本文将会详细介绍如何使用tensorflow/serving来实现BERT模型的部署及预测。 我们以Github上的bertNER为例,该项目使用BERT+Bi-LSTM+CRF结构实现中文序列标注,对BERT进行微调,并且提供了模型训练、模型预测的办法。本文将在此基础上,将模型训练后生成的ckpt文件转化为pb文件(tensorflow/serving支持的部署文件格式),并使用tensorflow/serving来实现BERT模型的部署及预测。如何将ckpt文件转化为pb文件? 该项目使用原创 2021-01-07 21:47:59 · 1292 阅读 · 9 评论 -
tensorflow(6)利用tensorflow/serving实现模型部署及预测
在文章tensorflow(5)将ckpt转化为pb文件并利用tensorflow/serving实现模型部署及预测中,笔者以一个简单的例子,来介绍如何在tensorflow中将ckpt转化为pb文件,并利用tensorflow/serving来实现模型部署及预测。本文将会介绍如何使用tensorflow/serving来实现单模型部署、多模型部署、模型版本控制以及模型预测。 我们将会以Docker形式使用tensorflow/serving,因此需要在你的环境中安装好Docker。我们以tenso原创 2021-01-06 21:54:01 · 1562 阅读 · 1 评论 -
数据结构入门(二)栈的应用之数学表达式求值
在文章数据结构入门(一)栈的实现中,我们已经知道了如何去实现“栈”这个数据结构,并且介绍了一个它的应用:数的进制转换。在本文中,将会介绍栈的第二个应用,也就是栈在数学表达式求值中的应用。 我们分以下几步对数学表达式进行求值。栈的实现;中缀表达式转后缀表达式;后缀表达式求值。先不着急明白上述术语,你看下去就会明白了。栈的实现 以下是栈的Python实现(Stack.py),...原创 2018-12-25 14:18:02 · 1524 阅读 · 0 评论 -
单词纠错
单词纠错 在我们平时使用Word或者其他文字编辑软件的时候,常常会遇到单词纠错的功能。比如在Word中:单词“Chinab”有红色的下划线,说明该单词拼写有误,在“拼写检查”中,给出了几个可能的单词来帮助用户纠正拼写。那么,我们是否能够自己来实现这个功能呢? Why not? 关于单词纠错的思路,可以参考Peter Norvig的鼎鼎大名的网站:http://norvig.com/...原创 2018-12-27 15:28:41 · 1290 阅读 · 0 评论 -
动态规划法(十一)编辑距离
编辑距离问题 什么是两个字符串的编辑距离(edit distance)?给定字符串s1和s2,以及在s1上的如下操作:插入(Insert)一个字符移除(Remove)一个字符替换(Replace)一个字符试问最小需要多少次这样的操作才能使得s1转换为s2? 比如,单词“cat”和“hat”,这样的操作最少需要一次,只需要把“cat”中的“c”替换为“h”即可。单词“recall...原创 2018-12-27 11:33:56 · 541 阅读 · 0 评论 -
数据结构入门(三)栈的应用
在之前的两篇文章——数据结构入门(一)栈的实现和数据结构入门(二)栈的应用之数学表达式求值中,笔者分别介绍了“栈”这个数据结构在数的进制转换和数学表达式求值方面的应用。在本文中,笔者将会再介绍栈的三个应用,它们分别是:判断字符串是否回文括号匹配行编辑程序二叉树的深度优先遍历 栈的结构实现可以参考数据结构入门(二)栈的应用之数学表达式求值,本文将不再具体给出。判断字符串是否回文...原创 2018-12-26 15:07:16 · 445 阅读 · 1 评论 -
数据结构入门(一)栈的实现
从这一篇文章开始,笔者将会正式进入数据结构的领域,后面也将会持续更新。 本文将会讲述一种特殊的线性表结构:栈(stack)。 栈,是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶(top),相应地,表头端称为栈底(bottom)。不含任何元素的空表称为空栈。 假设栈S=(a1,a2,...,an),S=(a_{1},a_{2},...,a_{n...原创 2018-12-05 21:32:02 · 511 阅读 · 0 评论 -
二叉树的Python实现
树的定义与基本术语 树型结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,是以分支关系定义的层次结构。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构;在计算机领域中也有广泛应用,如在编译程序中,可用树来表示源程序的语法结构;在数据库系统中,树型结构也是信息的重要组织形式之一;在机器学习中,决策树,随机森林,GBDT等是常见的树模型。 树(Tree)是n(n≥0)n(...原创 2018-11-24 21:08:47 · 2247 阅读 · 0 评论 -
TensorFlow(2)Softmax Regression
Softmax RegressionChapterBasicsgenerate random TensorsThree usual activation function in Neural NetworkSoftmax funcionSoftmax RegressionLogistic RegressionSoftmax RegressionExamples...原创 2018-08-20 09:46:57 · 401 阅读 · 0 评论 -
动态规划法(五)钢条切割问题(rod cutting problem)
继续讲故事~~ 我们的主人公现在已经告别了生于斯,长于斯的故乡,来到了全国最大的城市S市。这座S市,位于国家的东南部,是全国的经济中心,工商业极为发达,是这个国家的人民所向往的城市。这个到处都留着奶与蜜的城市,让丁丁充满了好奇感和新鲜感,他多想好好触摸这个城市的脉搏啊! 这不,他此刻正走在城市的某高新园区,不远处传来钢条切割的声音。他好奇地走上前去,看着工人们正在熟练地切割钢条,并...原创 2018-06-03 10:41:31 · 1099 阅读 · 0 评论 -
动态规划法(一)从斐波那契数列谈起
动态规划法与分治方法 动态规划(Dynamic Programming)与分治方法相似,都是通过组合子问题的解来求解原问题。不同的是,分治方法通常将问题划分为互不相交的子问题,递归地求解子问题,再讲它们的解组合起来,求出原问题的解。而动态规划应用于子问题重叠的情况,即不用的子问题具有公共的子子问题。在这种情况下,如果采用分治算法,则分治算法会做许多不必要的工作,它会反复地求解那些公共子子问题...原创 2018-05-28 10:58:10 · 3955 阅读 · 1 评论 -
动态规划法(二)找零钱问题
本次博客尝试以storyline的方式来写作,如有不足之处,还请多多包涵~~问题的诞生 我们故事的主人公叫做丁丁,他是一个十几岁的小男孩,机智聪颖,是某某杂货店的小学徒。在他生活的国度里,只流通面额为1,3,4的硬币。复杂这家店的店长,叫做老王,是个勤奋实干的中年人,每天都要跟钱打交道。 有一天,他心血来潮,叫住正在摆放货物的丁丁,对他说道:“丁丁,你不是学过计算机方面的算...原创 2018-05-28 17:26:51 · 5512 阅读 · 1 评论 -
动态规划法(十)最长公共子序列(LCS)问题
问题介绍 给定一个序列X=<x1,x2,....,xm>X=<x1,x2,....,xm>X=,另一个序列Z=<z1,z2,....,zk>Z=<z1,z2,....,zk>Z=满足如下条件时称为X的子序列:存在一个严格递增的X的下标序列&l原创 2018-06-12 15:09:18 · 616 阅读 · 0 评论 -
动态规划法(六)鸡蛋掉落问题(一)(egg dropping problem)
继续讲故事~~ 这天,丁丁正走在路上,欣赏着路边迷人的城市风景,突然发现前面的大楼前围了一波吃瓜群众。他好奇地凑上前去,想一探究竟,看看到底发生了什么事情。 原来本市的一位小有名气的科学家正在这幢大楼进行一个实验:某种材料的防护性能。他在大楼的底下铺了一层这种防护材料,想拿鸡蛋做实验,将鸡蛋从楼层掉下,看看鸡蛋从哪一层掉下去会摔碎,以此测试该材料的防护性能。这就是著名的鸡蛋掉落问题...原创 2018-06-05 14:36:08 · 2303 阅读 · 1 评论 -
动态规划法(七)鸡蛋掉落问题(二)
上次我们讲到,我们的主人公丁丁由于用动态规划法解决了鸡蛋掉落问题(egg dropping problem)而获得了当地科学家的赏识。这不,正当丁丁还沉浸在解决问题的喜悦中,科学家又给丁丁出了一个难题: 假设有n个鸡蛋和d次尝试机会,那么,最多能探索多少层楼?这无疑是鸡蛋问题的翻版,因为这两个问题实在太像了。丁丁没有犹豫,立马按照之前的想法开始思考: 用f(d,n)f(d...原创 2018-06-06 17:27:14 · 800 阅读 · 0 评论 -
动态规划法(八)最大子数组问题(maximum subarray problem)
问题简介 本文将介绍计算机算法中的经典问题——最大子数组问题(maximum subarray problem)。所谓的最大子数组问题,指的是:给定一个数组A,寻找A的和最大的非空连续子数组。比如,数组 A = [-2, -3, 4, -1, -2, 1, 5, -3], 最大子数组应为[4, -1, -2, 1, 5],其和为7。 首先,如果A中的元素全部为正(或非负数),则最大子数...原创 2018-06-06 20:52:25 · 3913 阅读 · 1 评论 -
动态规划法(九)想要更多例子?
本文将会介绍三个用动态规划法解决的例子,分别是:楼梯台阶问题二项式系数求解最大乘积子数组问题楼梯台阶问题 一个n阶的楼梯,一个婴儿每次爬一阶或两阶,试问一共有多少种办法爬完楼梯。设f(n)为该问题的解,考虑最后一次的爬法,若最后一次爬一阶,则前面n-1阶楼梯有f(n-1)种办法,若最后一次爬两阶,则前面n-2阶楼梯有f(n-2)种办法,因此: f(n)=f(n−...原创 2018-06-06 21:58:53 · 599 阅读 · 0 评论 -
动态规划法(三)子集和问题(Subset sum problem)
继续讲故事~~ 上次讲到我们的主人公丁丁,用神奇的动态规划法解决了杂货店老板的两个找零钱问题,得到了老板的肯定。之后,他就决心去大城市闯荡了,看一看外面更大的世界。 这天,丁丁刚回到家,他的弟弟小连就拦住了他,“老哥,有个问题想请教你。”对于一向数学见长的小连,这次竟然破天荒的来问自己问题,丁丁感到不可思议:他俩一个以计算机见长,一个以数学见长,各自心里都有点小骄傲,不会轻易地向对...原创 2018-05-31 14:12:39 · 5754 阅读 · 5 评论 -
算法笔试题之平衡点问题
平衡点问题 平衡点问题: 一个数组中的元素,如果其前面的部分等于后面的部分,那么这个点的位序就是平衡点。 比如列表numbers = [1, 3, 5, 7, 8, 25, 4, 20],25前面的总和为24,25,后面的总和也是24,那么25就是这个列表的平衡点。 要求编写程序,寻找并返回任意一个列表的平衡点。一般算法 假设列表的长度为N,N大于等于3。(因为N=...原创 2018-08-01 20:15:52 · 682 阅读 · 0 评论 -
Java之判断大整数是否为平方数
在本篇博客中,我们将讨论如何使用有效的算法来判断一个大整数是否为平方数。 给定正整数nnn,如果存在一个整数mmm,满足m2=nm2=nm^{2}=n,那么则称nnn为平方数。因此,判断一个大整数nnn是否为平方数,很自然的想法就是,从1开始,依次递增,判断这个数的平方是否等于给定的数nnn,如果是,则nnn为平方数,如果这个数的平方大于nnn,则nnn不是平方数。这个想法很简单,但可惜...原创 2018-08-19 17:48:11 · 2597 阅读 · 0 评论 -
动态规划法(四)0-1背包问题(0-1 Knapsack Problem)
继续讲故事~~ 转眼我们的主人公丁丁就要离开自己的家乡,去大城市见世面了。这天晚上,妈妈正在耐心地帮丁丁收拾行李。家里有个最大能承受20kg的袋子,可是妈妈却有很多东西想装袋子里,已知行李的编号、重要、价值如下表所示: 行李编号 1 2 3 4 5 6 重量(kg) 1 2 5 6 7 9 价值 1 6...原创 2018-06-02 20:32:49 · 7139 阅读 · 1 评论