当前位置: 首页 > wzjs >正文

湖南3合1网站建设公司晋江哪里可以学建设网站

湖南3合1网站建设公司,晋江哪里可以学建设网站,品牌策划ppt案例,网站系统是什么一、IndexIVFPQ IndexFlatL2(粗聚类中心)实现流程 二、详细流程描述 利用训练样本集进行训练 IndexFlatL2类型的量化器,进行粗聚类,粗聚类中心最后会存在量化器中细聚类中心训练 利用a中的索引(存的就是训练得到的粗聚类中心)进行…

一、IndexIVFPQ + IndexFlatL2(粗聚类中心)实现流程

二、详细流程描述

  1. 利用训练样本集进行训练

    1. IndexFlatL2类型的量化器,进行粗聚类,粗聚类中心最后会存在量化器中
    2. 细聚类中心训练
      1. 利用a中的索引(存的就是训练得到的粗聚类中心)进行检索,为训练样本集分配粗聚类中心;
      2. 计算粗聚类中心与训练样本集的残差(用 d维<原始向量的xi> - d维度<粗聚类中心向量yi>,得到一个新的d维残差向量),以此作为新的向量集合进行细聚类;
      3. PQ量化器训练:将原始向量分成M段字向量,子向量串行训练
        1. 根据指定的细聚类中心点数量对第Mi段子向量进行聚类(M ≤ i ≥ 0);
        2. 聚类完成后,在PQ量化器中保存好Mi段的聚类中心数据 (pq.train)
        3. 借助粗聚类中心,细聚类中心数据预计算得到 预计算表(降低在线search的算力消耗,提升检索速度)
          1. precompute_list_tables_L2 search阶段,这个函数会用到训练阶段得到的预计算表
  2. 倒排索引构建:index.add向索引中添加原始向量

    1. 计算聚类中心与原始向量的残差
    2. 计算a中残差向量与聚类中心的L2距离 (分成M段分别计算的;残差向量分段及细聚类中心向量分段)
      1. 每个原始向量得到的距离表是 ksub * M维的
    3. 利用b中计算的距离表,确定原始向量的编码id
    4. 将原始向量添加到倒排列表中(貌似是按顺序push的,没看到排序逻辑)
      1. 倒排列表的结构
        1. std::vector<std::vector<uint8_t>> codes; // <粗聚类中心id, <编码>>
        2. std::vector<std::vector<idx_t>> ids; //<粗聚类中心id, <docid>>
  3. 检索query向量 (找到TopK个与query向量的|| x - y_C - y_R ||^2最小的原始向量label_id)

    1. 所有粗聚类中心下search, 得到距离及对应粗聚类中心id (这里拿到了term1
    2. 在指定(nprobe)数量的粗聚类倒排链中检索,获取最终距离及docid
      1. 选出nprobe个倒排链
      2. 依次遍历nprobe个倒排链,检索item, 当检索的向量数超过max_code的时候,终止检索;
        1. 创建scanner实例:InvertedListScanner*
        2. scanner->set_query(x + i * d); // 计算term3
          1. qi 存第i个query向量;
          2. 填充sim_table_2:query向量分段,计算与所有细聚类中心的**内积**
        3. scanner->set_list(key, coarse_dis_i);
        4. scan_one_list
          1. 倒排链中的编码后的原始向量节点,逐个计算term1 + term2 + term3
          2. 找到最相似的TopK

// 最终检索流程梳理
scanner->set_query(x + i * d);init_queryqi 存第i个query向量填充sim_table_2:query向量分段,计算与所有细聚类中心的**内积**init_result
scan_one_list(keys[i * nprobe + ik],coarse_dis[i * nprobe + ik],simi,idxi,max_codes - nscan)scanner->set_list(key, coarse_dis_i);list_no记录当前的倒排链idcoarse_dis记录query向量与粗聚类中心距离dis0  和粗聚类中心的距离 // term1fvec_madd(pq.M * pq.ksub,ivfpq.precomputed_table.data() + key * pq.ksub * pq.M,  // term2-2.0,sim_table_2,sim_table);  // 最终结果sim_table[i] = term2[i] - 2 * sim_table_2[i]  // term2 - 2 * term3scanner->scan_codes(list_size, codes, ids, simi, idxi, k)scan_list_with_table  // term1 + term2 - 2 * term3reorder_result(simi, idxi);

三、一些常见问题记录

  • coarse_quantizer 粗聚类中心点结构数据就是 x维的向量? 是的
    • 如果是IndexFlat类型的,中心点向量会存在一个一维数组中
  • 粗聚类量化器的作用
    • 对训练向量进行粗聚类(不涉及量化),得到粗聚类中心;
  • 细聚类量化器的作用
    • 训练阶段:把残差向量进行聚类并保留聚类中心
    • 在构建倒排索引阶段,把n个d维原始向量,量化成
  • 抽样数据训练最终是为了得到什么?
    • 粗聚类中心 (存在量化器中)
    • 细聚类中心(存在IndexIVFPQ的成员ProductQuantizer::centroids中)
  • 原始向量数据存在哪里
    • 原始的训练向量就没存
  • 量化后的数据存在哪里
    • IndexIVFPQ::invlists中,即倒排链中,包含docid,编码id数组
  • 最终检索query向量过程中
    • 预计算好的码表在哪里使用了? 计算最终距离的时候,直接查表
    • 哪里使用了量化编码?
      • 计算term3的时候
    • 能否指定遍历的粗聚类中心点,即倒排链数量
      • 可以, 可以通过IVFSearchParameters::nprobe指定;
  • 残差:原始向量[i] - 所属中心点向量[i]
    • 为什么用残差向量做量化?仔细想一下,样本y和其所属的聚类中心向量 c(y)肯定是距离比较小的,那么其残差一定是很小的。如原始样本向量y=[8, 9, 10],其聚类中心是[7.5, 8.5, 9.5],则残差就是 y-cy=[0.5, 0.5, 0.5]。不难发现残差向量相比原始向量y,其每个值的值域要小很多,值域小的话量化误差就会更小,因为kmeans聚类时引起的误差会更小。
  • 非残差的训练及检索流程
    • 待补充
  • 倒排链归哪里持有,和细聚类中心的关系是?
    • 倒排链是一个vector, 和粗聚类中心是一一对应的关系
    • 倒排链中每个元素都是一个原始向量PQ量化之后的结果, 同时还保存了docid信息;
    • 倒排列表的结构
      • std::vector<std::vector<uint8_t>> codes; // <粗聚类中心id, <编码>>
      • std::vector<std::vector<idx_t>> ids; //<粗聚类中心id, <docid>>
  • 可调参数
    • nprobe(检索的倒排链数量)
    • max_codes (所有倒排链加一起,最多对比max_codes个向量)
    • nlist (建库时,粗聚类中心点个数)
    • topk(需要多少个item结果)


文章转载自:

http://XkjA04cD.pLrxg.cn
http://LCjqjuj2.pLrxg.cn
http://VZI0CHfN.pLrxg.cn
http://16AgfwKn.pLrxg.cn
http://JTgyHD7D.pLrxg.cn
http://PXbRLHaj.pLrxg.cn
http://Ymv5T4Qy.pLrxg.cn
http://CTnwqh7C.pLrxg.cn
http://R07V3sGU.pLrxg.cn
http://0eSD9RK0.pLrxg.cn
http://QE2O1ScT.pLrxg.cn
http://bIvtUm4A.pLrxg.cn
http://D77DYQjh.pLrxg.cn
http://zZ5N31Bo.pLrxg.cn
http://VN9Qu0OK.pLrxg.cn
http://dtURxuiL.pLrxg.cn
http://VXVXHWM9.pLrxg.cn
http://c9R37Vpk.pLrxg.cn
http://R8AX3BbH.pLrxg.cn
http://Z8DsfCvA.pLrxg.cn
http://T3YLofBb.pLrxg.cn
http://vCB7ptPP.pLrxg.cn
http://RptLe0m4.pLrxg.cn
http://O5h9uGwj.pLrxg.cn
http://GkVj4US5.pLrxg.cn
http://Om4XjFBL.pLrxg.cn
http://dtOFxMJ4.pLrxg.cn
http://k4aN9u1A.pLrxg.cn
http://B6jzqdQB.pLrxg.cn
http://Iyu6g1Et.pLrxg.cn
http://www.dtcms.com/wzjs/751751.html

相关文章:

  • 网页制作与网站建设策划书案例点击网站首页域名又添加一个
  • 公司在网上做网站怎么做账docker安装wordpress
  • 徐州住房与建设局网站做企业商城网站
  • 做建网站的工作一年赚几百万素材中国免费素材网
  • 西宁公司做网站洪山网站建设
  • 北京建站公司哪家好都选万维科技视频网站模板源码
  • 吉林省住房建设安厅网站福建自适应网站建设
  • 文登住房与建设局网站网站文章添加
  • 400电话安装佛山营销网站建设网站留言板有什么用
  • 网站域名 被别人备案网站建设怎么挣钱
  • 网站开发的数据新创企业如何进行品牌文化建设
  • 布吉做棋牌网站建设有哪些公司公司小程序
  • 做公众号的必备参考网站语音识别程序代做网站
  • 德州市建设街小学官方网站wordpress 标签 404
  • 罗村网站制作公司wordpress主题恶意代码
  • 济南建站公司注意什么耳机商城网站开发
  • 网站收费吗郑州住房和城乡建设部网站
  • 专业网站制作企业网站建设论坛
  • 杭州关键词优化服务天津网络排名优化
  • 青岛企业自助建站系统国有林场网站建设
  • 超市网站建设费用网站设计app
  • 做网站为什么要钱广州做网站多少钱
  • 东莞市五金有限公司 寮步 技术支持 网站建设手工制作包包
  • 1 建设网站目的开发软件多少钱
  • 网站建设空间大小app开发公司启动资金有哪些
  • 玉山县建设局网站农村建设投诉网站首页
  • 购物网站开发公司网站制作深圳
  • 佛山网页建站模板电脑培训班零基础
  • 有关建设工程的强制性标准与抗震网站建优化
  • 顺义网站建设网站建设与小程序开发熊掌号