http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/word2vec.html 这一节是关于 word2vec 模型的,可以用来学习词的向量表达 /word2vec/word2vec_basic.py 词向量就是用一个具有一定维度的向量来表示一个单词,这样在分布式假设的思想下,我们可以认为出现在相同上下文情景中的词汇都有类似的语义。 最后还可以用 t-SNE 来可视化最后的词向量间的距离关系,可以发现具有相似信息的单词距离较近。 ? ---- 1. 用 SGD 优化器去优化目标, valid_embeddings 是用来检验的 16 个单词的词向量表示, similarity 是定义验证单词与词汇表中所有单词的相似度: ? 5. 最后用 TSNE 将 128 维的词向量降到 2 维,并展示频率最高的 100 个单词: ?
为法向量,决定了超平面的方向,b为位移项,决定了超平面与原点之间的距离。 样本中任意点x到超平面的距离为 ? ,假设超平面能够正确分类训练样本,即对于 ? , ? ,有 ? ,若 ? ,则 ? 距离样本超平面最近的几个训练样本使得等号成立,被称为支持向量,两个异类支持向量到超平面的距离之和为: ? ,被称为间隔。 欲找到具有最大间隔的划分超平面,也就是要找到能满足上面约束的w和b,使得 ? 确定偏移项b的方法: 对所有支持向量: ? ,其中 ? 为所有支持向量的下标集。理论上可以选择任意支持向量求解b,但现实任务中采用一种更加鲁棒的做法,使用所有支持向量求解平均值: ? 。 这就是常见的软间隔支持向量机。 ? , 对偶问题: ? ? KKT条件为: ? ? ? ? ? ? 软间隔支持向量机的最终模型仍然仅与支持向量有关,即通过采用hinge损失函数保持了稀疏性。 # 如果支持向量太少,就可能会得到一个很差的决策边界 # 如果支持向量太多,也就相当于每次都利用整个数据集进行分类 参考: 《机器学习》 《统计学习方法》 《机器学习实战》
前言 本文详细介绍了从YOLOv1-YOLOv9的网络结构,以及各个版本之间的迭代。 SPP:采用1×1,5×5,9×9,13×13的最大池化的方式,进行多尺度融合。 9. YOLOv9(2024) (论文地址:https://arxiv.org/pdf/2402.13616.pdf) (代码地址:https://github.com/WongKinYiu/yolov9) 与YOLOv8-X相比,YOLOv9-E参数减少16%,计算量减少27%,AP显着提升1.7%。上述对比结果表明,论文提出的YOLOv9与现有方法相比在各方面都有显著改进。
本指南将教你用 COS 向量桶给 OpenClaw 实现智能路由。 二、解决方案:COS 向量桶的智能路由架构腾讯云 COS 向量桶是对象存储服务的原生向量处理能力,专门为人工智能应用场景设计,可概括为:能够存储向量数据、支持毫秒级语义检索的高性价比存储服务。 COS 向量桶三大核心优势解析1. 零运维部署,开箱即用:无需搭建集群、无需复杂参数调优,1 分钟内即可创建向量桶,复用 COS SDK,少量代码即可完成向量数据的读写操作;2. 腾讯云 COS 向量桶服务:在与 OpenClaw 服务器相同地域创建向量桶,获取访问密钥;2. OpenClaw 部署完成:确保腾讯云服务器或容器中的 OpenClaw 已部署就绪;3. 将每个技能的 “名称 + SKILL.md 内容” 组合成完整文本,作为向量化处理的原始材料。向量生成与存储使用 Python SDK 遍历所有技能生成向量,并写入 COS 向量桶建立索引。
Day9 学习日志:Embedding 与向量数据库 日期:2026-03-25 定位:在「三国演义」语料上跑通 本地 Word2Vec 与 DashScope 文本向量 API 两条链路,理解 词级 • 想用「句子 / 问句」在词向量空间里找近邻词:jieba 分词 → 过滤 OOV → 对剩余词向量 取平均 → wv.similar_by_vector。 • 局限:得到的是与句向量方向接近的 词,不是「另一段原文句子」排序;句对段 检索更适合下面的 API 向量库或 Doc2Vec。 仅用平均词向量是基线;可了解 加权(TF-IDF)、Doc2Vec、或多语言 句向量模型 与 RAG 里 chunk / overlap 策略。 Day9 把这条因果链从目录结构一直拉到了 额度、本地复用与 FAISS 落盘,便于以后接正式向量库与 RAG 时少踩重复坑。
落地 COS 向量桶智能路由方案1. 构建 Skill 向量索引:将 50 + 技能的名称、用途、参数(SKILL.md 内容)通过腾讯云混元 Embedding 生成 768 维向量,存入同地域 COS 向量桶,创建专属索引;2. 落地 COS 向量桶智能路由方案1. 精细化向量构建:将 120 + 研发技能按 “代码管理、运维、测试” 分类,生成向量时嵌入分类标签,提升检索精准度;2. 落地 COS 向量桶智能路由方案1. 对话向量化优化:针对客服短文本咨询,优化 Embedding 维度(768 维),提升语义匹配精度;2. 高可用向量索引:COS 向量桶开启高频读写模式,适配日均 5000 + 次检索需求,毫秒级响应;3. 路由策略适配:插件配置 Top-K=4,优先召回高频客服技能,兼顾响应速度与精准度。
2.腾讯云向量桶:给“龙虾”塞进一个动态外脑就在大家伙儿都在卷“模型上下文长度”的时候,腾讯云搞了个挺绝的操作:向量桶(COSVectorBucket)。 实验B:向量桶模式(智能路由)同样是这50个Skill,全部丢进腾讯云向量桶。初始Context:几乎为零。单轮开销:因为只检索了相关的1个Skill,Token消耗降低了92%!AI表现:干净利落。 直接去腾讯云COS控制台,找个桶,点一下那个Vector功能。这一步最爽的地方在于,你是在用操作文件的方式操作向量,完全没有学习门槛。 你可以尽情地写,向量桶会帮你处理好“注意力”的问题。 开发者社区里已经有很多大佬分享了创意实践,不管是做私人助理、代码专家还是行业知识库,向量桶的表现都堪称惊艳。
支持向量机(support vector machines)是一种二分类模型,基本模型是定义在特征空间上的间隔最大化的线性分类器,通过引入核函数,最终转化为一个凸二次规划问题来求解。 支持向量机也可以作为非线性分类器来解决非线性数据集的分类问题。 支持向量机诞生于1963年,理论及应用都非常成熟,对初学者来说是绕不开的一个算法,在机器学习/数据挖掘的面试当中更是经典中的经典,非常能够体现面试者的数学功底以及对机器学习算法理解的程度。 支持向量机内涵诸多数学思想,比如几何思想、抽象思维、转化思想等等,学习SVM是一个非常好的实践数学思想的过程。 之前发过一篇SVM数学推导原理的文章:[算法系列]SVM的数学推导原理 各种博客或公众号都有很多类似文章,向大家推荐一个个人看过最靠谱的一篇: 《支持向量机通俗导论(理解SVM的三层境界)》 https
COS 向量桶完美解决了我们的痛点: 开箱即用,免运维:不需要搭集群,不需要调优内存,就像建一个普通的存储桶一样,1 分钟搞定。 图注:三步部署流程——激活向量桶、构建 Skill 索引、挂载拦截 Hook 三、效果炸裂:这是一份能给老板看的成绩单 这套基于 COS 向量桶的路由系统上线后,我们模拟了 10 个典型用户的查询场景( ,所有向量桶操作开箱即用! ,采用cos-vectors-skill来操作cos向量桶。 是时候用 COS 向量桶给它做个“减负手术”了! 立即前往 https://console.cloud.tencent.com/cos/bucket 创建向量桶。
桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。 每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序) 思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列 示例: $v){ for($i = 0; $i < $v; $i++) { echo $k; } } 应用大量数据排序 比如9亿不重复的9位数字排序,可以初始化
每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。 总共有100个桶。然后对A[1..n]从头到尾扫描一遍,把每个A[i]放入对应的桶B[j]中。 然后再对这100个桶中每个桶里的数字排序,这时可用冒泡,选择,乃至快排,一般来说任何排序法都可以。 最后依次输出每个桶里面的数字,且每个桶中的数字从小到大输出,这样就得到所有数字排好序的一个序列了。 假设有n个数字,有m个桶,如果数字是平均分布的,则每个桶里面平均有n/m个数字。 因为输入数均匀分布在[0,1)上,所以一般不会有很多数落在一个桶中的情况。为得到结果,先对各个桶中的数进行排序,然后按次序把各桶中的元素列出来即可。 当然桶排序的空间复杂度为O(N+M),如果输入数据非常庞大,而桶的数量也非常多,则空间代价无疑是昂贵的。此外,桶排序是稳定的。
简介 桶排序是将待排序序列分到有限数量的桶中,然后对每一个桶分别进行排序。 桶排序的前提假设为被排序序列的关键字数值符合均匀分布,此时桶排序的平均时间复杂度为 ,最坏时间复杂度为 其中 为桶的数量。当桶数量 时,此时桶排序的复杂度为线性复杂度 。 桶排序是非原址的,其稳定性取决于内层排序的稳定性。一般采用稳定的插入排序作为内层排序算法,此时桶排序是稳定的。 2. 思想 桶排序的主要思想是对待排序序列的关键字数值进行分块,每一块对应一个桶,然后对每个桶使用插入排序(或其他排序算法)进行排序,最后将所有桶中的元素串联起来即得到有序序列。 3. 实现 3.1 伪代码 BucketSort(A, mx, n) { // mx 为最大数值,n 为桶数量 // 定义 n 个桶 define bucket[n] // 计算分块的块大小
# 桶排序 # 原理 求出无序集合的最大值与最小值(这里的最小值指存在负数的情况),创建对应的数组长度 length=max+1 这里要处理一下负数 if min<0: length+=abs(min) 该length就是桶数组的长度,并创建这个桶数组将所有值初始化为0 然后遍历无须数组,修改桶中元素的个数(桶数组所以对应的值就是无需数组中相同值的个数) 最后只需要将桶数组中值大于 minItem>item): minItem=item # 最小值,最大值 print("min:{0}\tmax:{1}".format(minItem,maxItem)) # 创建桶数组 minItem<0): length+=abs(minItem) bigArr=[0]*length for item in inputArr: bigArr[item]+=1 # 将桶中的数据放到对应的有序数组上
桶排序 桶排序的思想是若待排序的记录的关键字在一个明显有限范围内(整型)时,可设计有限个有序桶,每个桶装入一个值(当然也可以装入若干个值),顺序输出各桶的值,将得到有序的序列。 namespace std; 3 int a[100001]; 4 int b[100001]; 5 int maxn=-1; 6 int main() 7 { 8 int n; 9
桶排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序、选择排序、插入排序、归并排序、快速排序和堆排序都是基于比较的排序,而桶排序提出了一种新的思路,即基于数据状态的排序。 1. 桶排序的思想 (1) 得到无序数组的取值范围 ? (2) 根据取值范围"创建"对应数量的"桶" ? (3) 遍历数组,把每个元素放到对应的"桶"中 ? (4) 按照顺序遍历桶中的每个元素,依次放到数组中,即可完成数组的排序。 "桶"是一种容器,这个容器可以用多种数据结构实现,包括数组、队列或者栈。 2. ,总的来说为O(n) 稳定性:桶排序是否稳定取决于"桶"用什么数据结构实现,如果是队列,那么可以保证相同的元素"取出去"后的相对位置与"放进来"之前是相同的,即排序是稳定的,而如果用栈来实现"桶",则排序一定是不稳定的 ,因为桶排序可以做到稳定,所以桶排序是稳定的排序算法 3.
# LeetCode-桶排序 桶排序算法回顾 示例1 输入: nums = [4,0,1,2,0,5] 输出: [0,0,1,2,4,5] # 解题思路 桶排序(Bucket Sort)的原理很简单 在桶排序时,创建容量为MAX的桶数组r,并将桶数组元素都初始化为0;将容量为MAX的桶数组中的每一个单元都看作一个"桶"。 在排序时,逐个遍历数组a,将数组a的值,作为"桶数组r"的下标。 ,在计数排序中,每个桶只存储相同的元素 而桶排序中每个桶存储一定范围的元素,通过映射函数,将待排序数组中的元素存储到各个对应的桶中 之后对每个桶中的元素进行排序 最后将非空桶中的元素逐个放入原序列中 桶排序需要尽量保证元素分散均匀 ,否则当所有数据集中在同一个桶中时,桶排序就会失效 桶排序的稳定性取决于桶内部使用的排序算法 # Java代码2 import java.util.ArrayList; import java.util.Collections 主要步骤有: N次循环,将每个元素装入对应的桶中 M次循环,对每个桶中的数据进行排序(平均每个桶有N/M个元素) 一般使用较为快速的排序算法,时间复杂度为O(nlogn),实际的桶排序过程是以链表形式插入的
对于限速来说,最常用的两个算法是:令牌桶算法和漏桶算法,下面我们便来看下它们是怎么回事。 一、令牌桶: 令牌桶这种控制机制基于令牌桶中是否存在令牌来指示什么时候可以发送流量。 如果令牌桶中存在令牌,则允许发送流量;而如果令牌桶中不存在令牌,则不允许发送流量。因此,如果突发门限被合理地配置并且令牌桶中有足够的令牌,那么流量就可以以峰值速率发送。 令牌桶的工作过程: 1.令牌根据时间匀速的产生令牌数量,这里假设是r,存入到令牌桶中. 2.令牌桶在初始化的时候,会分配一定数量的令牌数capicity。 当前时间t内可以消费的令牌数量为: 当前令牌桶剩余的令牌数(这里最大是capicity) + r*t 二、漏桶 漏桶可以看作是一个带有常量服务时间的单服务器队列,如果漏桶(包缓存)溢出,那么数据包会被丢弃 在“令牌桶算法”中,只要令牌桶中存在令牌,那么就允许突发地传输数据直到达到用户配置的门限,因此它适合于具有突发特性的流量。
以此释放服务器资源以保证核心任务的正常运行 限流:限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理 限流算法 常用的限流算法有令牌桶和和漏桶 漏桶算法 把请求比作是水,水来了都先放进桶里,并以限定的速度出水,当水来得过猛而出水不够快时就会导致水直接溢出,即拒绝服务。 ? 这时候漏桶算法可能就不合适了,令牌桶算法更为适合。 令牌桶算法的原理是系统以恒定的速率产生令牌,然后把令牌放到令牌桶中,令牌桶有一个容量,当令牌桶满了的时候,再向其中放令牌,那么多余的令牌会被丢弃;当想要处理一个请求的时候,需要从令牌桶中取出一个令牌,如果此时令牌桶中没有令牌 令牌桶算法VS漏桶算法 漏桶 漏桶的出水速度是恒定的,那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出)。 令牌桶 生成令牌的速度是恒定的,而请求去拿令牌是没有速度限制的。
【输入样例】3 2 9 10 6 4 5 7【输出样例】1 8#include <iostream>using namespace std;int main() { int a[15] = {0}
漏桶法的关键点在于漏桶始终按照固定的速率运行,但是它并不能很好的处理有大量突发请求的场景,毕竟在某些场景下我们可能需要提高系统的处理效率,而不是一味的按照固定速率处理请求。 关于漏桶的实现,uber团队有一个开源的github.com/uber-go/ratelimit库。 这个库的使用方法比较简单,Take() 方法会返回漏桶下一次滴水的时间。 / 2 10ms // 3 10ms // 4 10ms // 5 10ms // 6 10ms // 7 10ms // 8 10ms // 9 令牌桶其实和漏桶的原理类似,令牌桶按固定的速率往桶里放入令牌,并且只要能从桶里取出令牌就能通过,令牌桶支持突发流量的快速处理。 对于从桶里取不到令牌的场景,我们可以选择等待也可以直接拒绝并返回。 对于令牌桶的Go语言实现,大家可以参照github.com/juju/ratelimit库。