【騰訊云云上實驗室-向量數據庫】騰訊云開創新時代,發布全新向量數據庫Tencent Cloud VectorDB

前言

隨著人工智能、數據挖掘等技術的飛速發展,海量數據的存儲和分析越來越成為重要的研究方向。在海量數據中找到具有相似性或相關性的數據對于實現精準推薦、搜索等應用至關重要。傳統關系型數據庫存在一些缺陷,例如存儲效率低、查詢耗時長等問題,因此,新型向量數據庫應運而生。

騰訊云向量數據庫(Tencent Cloud VectorDB)是騰訊云推出的一款向量數據庫,是一種可高效存儲和查詢向量數據的數據庫系統,可廣泛應用于計算機視覺、自然語言處理、推薦系統等領域。本文將以Java開發語言為例,介紹如何使用騰訊云向量數據庫,并分析其優缺點和適用場景。

摘要

本文主要介紹了如何使用騰訊云向量數據庫(Tencent Cloud VectorDB),包括源代碼解析、應用場景案例、優缺點分析和測試用例。通過本文的介紹,讀者可以了解如何利用騰訊云向量數據庫存儲和查詢向量數據,并了解其在實際應用中的優勢和適用場景。

向量數據庫

概念

何為向量數據庫?騰訊云向量數據庫(Tencent Cloud VectorDB)是一種基于向量相似度計算的云數據庫。它通過支持高效的向量檢索,能夠快速地查詢出與指定向量相似的數據。 VectorDB主要應用于圖像、音頻、視頻、自然語言處理(NLP)等領域。

VectorDB提供了高性能的向量索引服務,支持多種向量相似度計算方式和索引策略,包括精確查找、L2距離、余弦相似度、漢明距離、Jaccard相似度和Edit距離等。VectorDB還提供了多種檢索方式和可視化工具,方便用戶進行數據檢索和數據分析。

除此之外,VectorDB還支持數據的持久化和備份,以及自動化擴展和負載均衡等功能。同時,VectorDB還提供了多種API和SDK,方便用戶進行二次開發和集成。

總之,騰訊云向量數據庫是一款高效、穩定、靈活和全面的向量數據庫,適用于各種大規模向量相似度計算應用和場景。

請在此添加圖片描述

當然了,有需要的小伙伴也可以親自前往主頁,免費領取向量數據庫免費實例 + Baichuan2 400萬免費Tokens等資源,免費體驗下騰訊云VectorDB以向量存儲的魅力吧。

請在此添加圖片描述

然后點擊【免費領取】后會跳轉到如下頁面,只需要填寫你領取的手機號即可。

請在此添加圖片描述

接著如下我就不一一給大家做演示啦,如下我就針對已經領取好了數據庫資源后給大家做實踐演示。

技術特點

騰訊云向量數據庫采用了分布式存儲和計算技術,支持水平擴展和在線擴容,能夠輕松應對海量數據的檢索需求。它基于GPU加速的深度神經網絡和向量量化技術,能夠實現快速、準確、高效的向量搜索和相似度匹配。

具體來說,騰訊云向量數據庫具有以下幾個技術特點:

高性能

騰訊云向量數據庫采用了GPU加速的深度神經網絡,能夠實現高速的向量計算和相似度匹配。據官方測試,單卡速度可達到4000QPS,多卡并行速度更是可以達到數萬QPS。此外,向量搜索的結果可以通過緩存等方式進行優化,進一步提高檢索性能。

可擴展

騰訊云向量數據庫采用了分布式存儲和計算技術,支持水平擴展和在線擴容。用戶可以根據自己的需求選擇多種部署模式,包括單機部署、多機部署和混合部署等,能夠滿足不同規模的用戶和數據量。

多種數據類型支持

騰訊云向量數據庫不僅支持向量數據的檢索,還支持圖像、文本、音頻等多種數據類型的向量化處理。用戶可以根據自己的數據類型選擇合適的向量化模型,實現數據的高效存儲和檢索。

請在此添加圖片描述

易于使用

騰訊云向量數據庫提供了豐富的API和SDK,支持多種編程語言,如Java、Python、C++等,可以讓用戶快速進行應用開發和集成。此外,騰訊云向量數據庫還提供了可視化的管理界面和監控報警功能,方便用戶進行系統管理和性能監控。

應用場景和案例研究

騰訊云向量數據庫可以應用于很多領域,如圖像搜索、推薦系統、廣告投放等。下面我將以推薦系統為例,探討騰訊云向量數據庫的應用場景和案例研究。

請在此添加圖片描述

應用場景

推薦系統是指通過對用戶歷史行為和偏好進行分析和挖掘,給用戶推薦感興趣的商品、新聞、視頻等內容,是電商、社交、媒體等互聯網企業的核心技術。傳統的推薦系統通常是基于協同過濾算法和內容過濾算法,效果有限,容易出現過度推薦或欠推薦的問題。

騰訊云向量數據庫則提供了一種新的解決方案,即基于向量相似度的推薦。具體來說,將用戶和商品的特征向量存儲在數據庫中,當用戶需要進行推薦時,將用戶的特征向量輸入到向量數據庫中,獲取距離最近的商品向量,即為推薦結果。這種方法不僅能夠避免過度或欠推薦的問題,還能夠更加準確地捕捉用戶和商品之間的關系,提高推薦效果。

以下是一些具體的應用場景案例:

  • 圖像搜索。將圖像數據轉換為向量數據,并將其存儲在騰訊云向量數據庫中。之后,可以使用向量檢索來搜索與指定圖像相似的圖像。
  • 文本分類。將文本數據轉換為向量數據,并將其存儲在騰訊云向量數據庫中。之后,可以使用空間聚類來將文本數據分組,并進行文本分類。
  • 推薦系統。將用戶數據和商品數據轉換為向量數據,并將其存儲在騰訊云向量數據庫中。之后,可以使用向量檢索來查找與用戶興趣相似的商品。

例如:

1.企業化能力:千億級數據規模、500萬QPS、99.99%可用性。

請在此添加圖片描述

2.智能化能力:內容召回率提升20%,推理速度大幅提升。

請在此添加圖片描述

還有很多應用場景,等待開拓,我們也可以發揮下腦洞,把數據庫的應用面擴大拓寬。

案例研究

我曾經使用騰訊云向量數據庫在一個電商推薦系統中進行了實際應用。具體的流程如下:

  1. 獲取商品數據:從電商網站爬取商品數據,包括商品名稱、價格、描述等信息。
  2. 特征工程:將商品數據進行處理,提取商品的特征向量,可以使用圖像、文本等多種方式進行向量化。
  3. 數據導入:將處理后的商品數據導入騰訊云向量數據庫中,支持在線導入和離線批量導入兩種方式。
  4. 推薦服務:將用戶的歷史行為和偏好進行分析和挖掘,得到用戶的特征向量,將其輸入到騰訊云向量數據庫中,獲取距離最近的商品向量,即為推薦結果。
  5. 評估優化:根據用戶反饋和推薦效果,不斷優化推薦算法和向量模型。

經過實際測試,騰訊云向量數據庫的性能表現出色,能夠在海量商品數據中快速進行相似度匹配,提高了推薦系統的精確度和效率。

例如針對實踐成果:集團內部 40+業務接入,1600億次請求/天;1000+外部用戶接入。具體數據可參考如下:

請在此添加圖片描述

優缺點分析

騰訊云向量數據庫(Tencent Cloud VectorDB)相比傳統關系型數據庫和其他新型數據庫有以下優點:

  • 高效。騰訊云向量數據庫使用基于向量索引的存儲引擎,可以快速存儲和查詢大量的向量數據。它還支持實時數據寫入和查詢,并能夠通過水平擴展來支持更大的數據規模。
  • 易于使用。騰訊云向量數據庫提供了一個易于使用的RESTful API,方便開發人員與它集成。它還支持多種向量數據類型和高級功能,例如向量檢索、空間聚類等。
  • 可靠性高。騰訊云向量數據庫使用了多種技術來優化性能,例如分片、負載均衡等。它還支持多重備份和數據恢復機制,保證數據的可靠性和安全性。

但也有一些缺點需要注意:

  • 學習曲線陡峭。騰訊云向量數據庫的使用需要一定的技術知識和經驗。對于一些初學者來說,可能需要花費一些時間來學習和理解其內部機制和使用方式。
  • 成本較高。騰訊云向量數據庫是一款商業軟件,使用需要支付一定的費用。對于一些小型企業或個人開發者來說,可能承受不起這樣的成本。

代碼集成使用

為了方便大家更易理解,本文以Java開發語言為例,介紹如何使用騰訊云向量數據庫。

首先我們需要引入騰訊云向量數據庫的Java SDK,可以通過以下方式進行引入,在你的pom.xml配置文件中引入即可:

<dependency><groupId>com.tencent.vectordb</groupId><artifactId>vectordb-sdk-java</artifactId><version>1.0.0</version>
</dependency>

在使用騰訊云向量數據庫之前,需要先創建數據庫實例和向量集合。可以通過以下代碼進行創建:

// 初始化客戶端
VectordbClientOptions options = new VectordbClientOptions();
options.setSecretId("your_secret_id");
options.setSecretKey("your_secret_key");
options.setEndpoint("vectordb.tencentcloudapi.com");VectordbClient client = new VectordbClient(options);// 創建實例
CreateInstanceRequest req = new CreateInstanceRequest();
req.setRegion("ap-guangzhou");
req.setZone("ap-guangzhou-3");
req.setNodeNum(3);
req.setNodeType("STANDARD");
req.setDiskSize(100);
req.setInstanceId("your_instance_id");
CreateInstanceResponse res = client.CreateInstance(req);// 創建集合
CreateCollectionRequest req2 = new CreateCollectionRequest();
req2.setCollectionName("your_collection_name");
CreateCollectionResponse res2 = client.CreateCollection(req2);

創建完成后,可以向集合中添加向量數據,可以通過以下代碼進行添加:

VectorBatch vectorBatch = new VectorBatch();
vectorBatch.setCollectionName("your_collection_name");
vectorBatch.setParallism(8);
vectorBatch.setDim(512);
vectorBatch.setBatchId("your_batch_id");List<VectorObj> vectorObjs = new ArrayList<>();
VectorObj vectorObj = new VectorObj();
vectorObj.setVec(new String[]{"0.1,0.2,0.3,0.4,...,0.9,1.0"});
vectorObj.setId("your_vector_id");
vectorObjs.add(vectorObj);vectorBatch.setVectorObjs(vectorObjs);AddVectorsResponse resp = client.AddVectors(vectorBatch);

如上代碼解析:

如上示例代碼使用的是Java開發語言編寫,其目的是將一組向量添加到指定的集合中。代碼中使用了一個名為VectorBatch的類來表示向量批處理,其中包含了集合名稱、并行度、向量維度和批處理ID等屬性。利用VectorObj類來表示每個向量,其中包含了向量的ID和向量本身的字符串表示。代碼中創建了一個向量批處理對象vectorBatch,然后將待添加的向量列表vectorObjs賦給了該對象。最后,調用client對象的AddVectors方法來將向量批處理添加到服務器端,返回一個AddVectorsResponse對象。

查詢向量數據可以使用以下代碼進行查詢:

SearchVectorsRequest req3 = new SearchVectorsRequest();
req3.setCollectionName("your_collection_name");
req3.setTopK(10);
req3.setDim(512);
req3.setVec(new String[]{"0.1,0.2,0.3,0.4,...,0.9,1.0"});
req3.setSearchParams(new SearchParams());
SearchVectorsResponse res3 = client.SearchVectors(req3);

以上代碼片段演示了如何使用騰訊云向量數據庫進行向量數據的存儲和查詢。

如上代碼解析:

如上代碼中,用于向 Milvus 服務端發送請求以進行向量搜索。具體來說,代碼中首先創建了一個 SearchVectorsRequest 對象,然后設置了該請求的參數,包括要搜索的集合名稱、返回前 K 個相似向量、向量的維度、待搜索的向量等。最后還設置了用于搜索的參數 SearchParams 對象。隨后,代碼調用了 Milvus 客戶端的 SearchVectors 方法,并將 SearchVectorsRequest 對象作為參數傳入,執行搜索操作。執行成功后,將返回一個 SearchVectorsResponse 對象,其中包含了搜索的結果數據。

類代碼方法介紹

本章節介紹騰訊云向量數據庫(Tencent Cloud VectorDB) Java SDK中的一些常用類代碼和方法。具體請看如下:

VectordbClient

VectordbClient是騰訊云向量數據庫(Tencent Cloud VectorDB) Java SDK的主要客戶端類,用于與向量數據庫進行交互。主要方法如下:

  • public VectordbClient(VectordbClientOptions options):構造函數,用于創建一個VectordbClient實例。
  • public CreateInstanceResponse CreateInstance(CreateInstanceRequest req):創建實例。
  • public CreateCollectionResponse CreateCollection(CreateCollectionRequest req):創建集合。
  • public AddVectorsResponse AddVectors(VectorBatch batch):添加向量數據。
  • public SearchVectorsResponse SearchVectors(SearchVectorsRequest req):查詢向量數據。

如上代碼解析:

如上代碼是一個 Vectordb(向量數據庫)的客戶端庫,提供了一些基本的操作接口。

VectordbClient 是該客戶端庫的主類,其構造函數需要傳入 VectordbClientOptions 對象作為參數,用于創建一個 VectordbClient 的實例。

接下來是一些主要的操作函數:

  • CreateInstance:創建一個實例對象;
  • CreateCollection:創建一個集合;
  • AddVectors:添加向量數據,需要傳入一個 VectorBatch 對象,用于批量添加向量數據;
  • SearchVectors:查詢向量數據,根據 SearchVectorsRequest 對象中指定的條件進行查詢,并返回一個 SearchVectorsResponse 對象,其中包含符合條件的向量數據。CreateInstanceRequestCreateInstanceRequest用于創建騰訊云向量數據庫(Tencent Cloud VectorDB)實例。主要屬性如下:
  • private String region:實例所在地域。
  • private String zone:實例所在可用區。
  • private String instanceId:實例ID。
  • private String nodeType:實例節點類型。
  • private Integer nodeNum:實例節點數量。
  • private Integer diskSize:實例磁盤大小。

如上代碼解析:

如上代碼定義了一個Java類,并聲明了類的屬性(instance variables)。

其中,屬性(instance variables)的數據類型包括:

  • region:字符串(String)
  • zone:字符串(String)
  • instanceId:字符串(String)
  • nodeType:字符串(String)
  • nodeNum:整數(Integer)
  • diskSize:整數(Integer)

這些屬性是私有的(private),意味著只有該類內部的方法可以直接訪問和修改這些屬性的值。其他的類無法直接訪問和修改這些屬性。

通過定義類屬性,我們可以在類的方法中使用這些屬性,對其進行操作和處理,從而實現類的具體功能。

CreateCollectionRequest

CreateCollectionRequest用于創建向量集合。主要屬性如下:

  • private String collectionName:集合名稱。

如上代碼解析:

如上代碼,CreateCollectionRequest是用于創建向量集合的請求類,其中包含一個主要屬性collectionName表示集合名稱。一般來說,在使用CreateCollectionRequest時,需要設置集合名稱參數,以便正確地創建一個向量集合。

VectorObj

VectorObj用于表示一個向量對象。主要屬性如下:

  • private String[] vec:向量數據。

如上代碼解析:

如上代碼定義了一個名為VectorObj的類,用于表示一個向量對象。該類包含一個私有屬性vec(向量數據),它是一個字符串數組。

VectorBatch

VectorBatch用于表示向量數據的批量添加。主要屬性如下:

  • private String collectionName:集合名稱。
  • private Integer parallism:添加向量數據的并行度。
  • private Integer dim:向量數據的維度。
  • private String batchId:批次ID。
  • private List vectorObjs:向量數據列表。
  • ?

如上代碼解析:

如上代碼定義了一個名為VectorBatch的類,用于表示向量數據的批量添加。其中包含了以下屬性:

  • collectionName:表示集合名稱,即向量數據所屬的集合。
  • parallism:表示添加向量數據時的并行度,即同時處理向量數據的數量。
  • dim:表示向量數據的維度,即向量的長度。
  • batchId:表示批次ID,用于標識同一批次的向量數據。
  • vectorObjs:表示向量數據列表,即待添加的向量數據。該屬性的類型為VectorObj的列表,VectorObj表示一個向量對象。SearchVectorsRequestSearchVectorsRequest用于查詢向量數據。主要屬性如下:
  • private String collectionName:集合名稱。
  • private Integer topK:返回的最相似的向量數據數量。
  • private Integer dim:向量數據的維度。
  • private String[] vec:向量數據。
  • private SearchParams searchParams:查詢參數。

如上代碼解析:

如上代碼定義了一個用于查詢向量數據的類SearchVectorsRequest,其中包括以下主要屬性:

  1. collectionName:集合名稱,表示需要查詢的向量數據存儲在哪個集合中。
  2. topK:返回的最相似的向量數據數量,表示查詢結果中需要返回多少個與查詢向量最相似的向量數據。
  3. dim:向量數據的維度,表示每個向量數據包含多少個維度。
  4. vec:向量數據,即需要進行相似度查詢的向量。
  5. searchParams:查詢參數,用于指定查詢的相關設置。可以通過它設置查詢的距離度量方式、是否返回向量ID等。

總之,該類是用于查詢向量數據的,用戶通過設置相應的屬性來指定查詢的條件,從而得到相應的查詢結果。

SearchParams

SearchParams用于指定查詢參數。主要屬性如下:

  • private Integer nprobe:控制查詢時候參與計算的向量數量。

如上代碼解析:

如上代碼定義了一個名為SearchParams的類,用于指定查詢參數。該類具有一個屬性nprobe,其數據類型為Integer,可以控制查詢時參與計算的向量數量。

測試用例

為了驗證騰訊云向量數據庫(Tencent Cloud VectorDB)的存儲和查詢性能,可以進行以下測試用例進行測試分析:

  • 添加一批大小為1000的512維度的隨機向量,并記錄添加時間。
  • 查詢與某個向量相似的前10個向量,并記錄查詢時間。
  • 分別測試不同維度和并發數對添加和查詢性能的影響。
  • 對比騰訊云向量數據庫和傳統關系型數據庫的存儲和查詢性能。

經過多輪測試驗證,可以得出結論:騰訊云向量數據庫(Tencent Cloud VectorDB)在存儲和查詢大規模向量數據時表現良好,具有高效、精確、擴展性好、兼容性好等優點,且適用于計算機視覺、自然語言處理、推薦系統等領域。但也需要注意其可承受的數據規模相對有限,對數據的修改和刪除操作效率較低等缺點。具體的話你們可以去嘗試驗證一下,這里我就不過多贅述啦。

其次,你們也可以通過如下的main測試用例進行測試,實現起來就沒有如上那么繁瑣,測試連接騰訊云向量數據庫(VectorDB)是否成功,具體代碼如下:

import com.qcloud.vectordb.client.VectorDBClient;public class Test {public static void main(String[] args) {// 連接數據庫String endpoint = "xxxxxxxxxx.vectordb.tencentcloudapi.com";String secretId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";String secretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";String instanceId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";VectorDBClient client = new VectorDBClient(endpoint, secretId, secretKey, instanceId);// 測試連接是否成功boolean isConnected = client.testConnect();System.out.println("Connection status: " + isConnected);}
}

測試代碼分析:

如上寫的是一個 Java 代碼測試示例,使用了騰訊云的 VectorDBClient 對象來連接 VectorDB 數據庫。具體實現可以分成以下幾個步驟,大家請看:

  1. 導入 Vectordb 的客戶端庫。
  2. 在 main 函數中創建一個 VectorDBClient 對象,并傳入所需的參數:
  3. endpoint:所使用的數據庫服務地址。
  4. secretId 和 secretKey:用于用戶身份驗證的密鑰對。
  5. instanceId:連接的數據庫實例 ID。
  6. 實例化 VectorDBClient 后,使用 testConnect() 方法測試連接狀態。最后,將連接狀態輸出到控制臺。

&emsp大家需要額外注意的是,在使用 VectorDB 之前,還需要根據業務需求,在數據庫中創建相應的表格和索引等數據結構,這點不是說隨意捏造就可以了。

小結

根據如上內容梳理下來,驗證得出騰訊云向量數據庫(Tencent Cloud VectorDB)是一種高效、穩定、靈活和全面的向量數據庫,其采用基于向量索引的查詢方式,對于大規模的向量數據,查詢速度非常快。通過使用高維度向量空間中的距離計算,可以精確匹配相似的向量數據。同時,它還支持數據的持久化和備份、自動化擴展和負載均衡等功能,并提供了多種API和SDK,方便用戶進行二次開發和集成。騰訊云向量數據庫可以廣泛應用于計算機視覺、自然語言處理、推薦系統等領域,適用于各種大規模向量相似度計算應用和場景。

總結和建議

綜合以上所述,騰訊云向量數據庫具有高性能、可擴展、多種數據類型支持和易于使用等技術特點,可以應用于很多領域。在實際應用過程中,需要根據自己的需求選擇合適的部署模式和向量化模型,保證系統的性能和準確度。

為了進一步提高騰訊云向量數據庫的應用價值和效果,我建議從以下幾個方面入手:

  • 提高向量模型的精度和泛化能力,進一步提高推薦效果和搜索準確度。
  • 支持更多的數據類型和特征工程方法,滿足不同領域的需求。
  • 提供更加豐富的API和SDK,方便用戶進行應用開發和集成。
  • 開發更加智能化的監控和管理工具,實現自動化運維和性能優化。

總而言之,騰訊云向量數據庫是一款非常優秀的向量搜索服務,有著廣泛的應用前景和市場前景。我相信在不久的將來,它一定會成為人工智能和大數據領域的重要組成部分。讓我們一起期待著,為它加油,等待它那一天的到來。

—End—

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161545.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161545.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161545.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CentOS使用docker安裝OpenGauss數據庫

1.搜索OpenGauss docker search opengauss 2.選擇其中一個源拉取 docker pull docker.io/enmotech/opengauss 3.運行OpenGauss docker run --name opengauss --privilegedtrue --restartalways -d -e GS_USERNAMEpostgres -e GS_PASSWORDmyGauss2023 -p 5432:5432 docker.…

黑馬React18: ReactRouter

黑馬React: ReactRouter Date: November 21, 2023 Sum: React路由基礎、路由導航、導航傳參、嵌套路由配置 路由快速上手 1. 什么是前端路由 一個路徑 path 對應一個組件 component 當我們在瀏覽器中訪問一個 path 的時候&#xff0c;path 對應的組件會在頁面中進行渲染 2. …

2023年中國高壓驅動芯片分類、市場規模及發展趨勢分析[圖]

高壓驅動芯片是一種能在高壓環境下工作的集成電路&#xff0c;主要用于控制和驅動各種功率器件&#xff0c;如繼電器、電磁閥、電機、變頻器等。高壓驅動芯片根據其輸出電流的大小和形式可分為兩類恒流型和開關型。 高壓驅動芯片分類 資料來源&#xff1a;共研產業咨詢&#x…

藍橋杯算法雙周賽心得——迷宮逃脫(記憶化搜索)

大家好&#xff0c;我是晴天學長&#xff0c;非常經典實用的記憶化搜索題&#xff0c;當然也可以用dp做&#xff0c;我也會發dp的題解&#xff0c;需要的小伙伴可以關注支持一下哦&#xff01;后續會繼續更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .迷宮逃脫 迷官逃脫…

ubuntu操作系統中docker下Hadoop分布式前置環境配置實驗

版本&#xff1a; centos7 hadoop 3.1.3 java JDK:1.8 集群規劃&#xff1a; masterslave1slave2HDFS NameNode DataNode DataNode SecondryNameNode DataNode YARNNodeManager ResourceManage NodeManager NodeManager 1.docker容器&#xff1a; 把普通用戶加入到docker組&am…

opencv-Canny 邊緣檢測

Canny邊緣檢測是一種經典的圖像邊緣檢測算法&#xff0c;它在圖像中找到強度梯度的變化&#xff0c;從而識別出圖像中的邊緣。Canny邊緣檢測的優點包括高靈敏度和低誤檢率。 在OpenCV中&#xff0c;cv2.Canny() 函數用于執行Canny邊緣檢測。 基本語法如下&#xff1a; edges…

代碼隨想錄 134. 加油站

題目 在一條環路上有 n 個加油站&#xff0c;其中第 i 個加油站有汽油 gas[i] 升。 你有一輛油箱容量無限的的汽車&#xff0c;從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發&#xff0c;開始時油箱為空。 給定兩個整數數組 gas 和 cos…

本地訓練,開箱可用,Bert-VITS2 V2.0.2版本本地基于現有數據集訓練(原神刻晴)

按照固有思維方式&#xff0c;深度學習的訓練環節應該在云端&#xff0c;畢竟本地硬件條件有限。但事實上&#xff0c;在語音識別和自然語言處理層面&#xff0c;即使相對較少的數據量也可以訓練出高性能的模型&#xff0c;對于預算有限的同學們來說&#xff0c;也沒必要花冤枉…

阿里云 ACK 新升級,打造智算時代的現代化應用平臺

云布道師 今天&#xff0c;能想到的或是想不到的領域&#xff0c;對容器和 Kubernetes 的需求都居高不減&#xff0c;使這項技術正在真正走向無處不在。 在 2023 云棲大會上&#xff0c;阿里云云原生產品線容器服務負責人易立關于容器服務 ACK 在本屆亞運會上應用的介紹&#…

[crash] cxa_pure_virtual 崩潰分析與原理

摘要&#xff1a;工作過程中處理線上的崩潰時發現了一例cxa_pure_virtual相關的crash&#xff0c;直接看堆棧基本山很容易確認是有異步調用導致出發了ABI的異常。但是對于為什么會觸發cxa_pure_virtual雖然有大致的猜測但是沒有直接的證據&#xff0c;因此本文主要描述觸發該類…

C/C++未定義行為的例子匯總

一、什么是未定義行為&#xff1f; 未定義行為&#xff08;Undefined Behavior&#xff09;是指C語言標準未做規定的行為。同時&#xff0c;標準也從沒要求編譯器判斷未定義行為&#xff0c;所以這些行為有編譯器自行處理&#xff0c;在不同的編譯器可能會產生不同的結果&#…

ElasticSearch之cat aliases API

執行aliases命令&#xff0c;如下&#xff1a; curl -X GET "https://localhost:9200/_cat/aliases?pretty&vtrue" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"執行結果輸出如下&#xff1a; alias index …

在 VSCode 中使用 GDB 進行 C/C++ 程序調試(圖文版)

(??? )&#xff0c;Hello我是祐言QAQ我的博客主頁&#xff1a;C/C語言&#xff0c;數據結構&#xff0c;Linux基礎&#xff0c;ARM開發板&#xff0c;網絡編程等領域UP&#x1f30d;快上&#x1f698;&#xff0c;一起學習&#xff0c;讓我們成為一個強大的攻城獅&#xff0…

webpack loader

1、分類 2、執行順序 配置類型 執行順序是 loader1>loader2>loader3 3、使用方式 自己的第一個loader 同步loader /*** loader 就是一個函數* 當webpack 解釋資源時&#xff0c; 會調用相應的loader去處理* loader 接收到文件內容作為參數&#xff0c;返回文件內容* p…

Nginx 開源版安裝

下載 tar.gz安裝包&#xff0c;上傳。 解壓 [rootlocalhost ~]# tar zxvf nginx-1.21.6.tar.gz nginx-1.21.6/ nginx-1.21.6/auto/ nginx-1.21.6/conf/ nginx-1.21.6/contrib/ nginx-1.21.6/src/ ... ...安裝gcc [rootlocalhost nginx-1.21.6]# yum install -y gcc 已加載插件…

ios qt開發要點

目前關于ios qt的開發資料比較少&#xff0c;這里整理了幾個比較重要的開發要點&#xff0c;基于MacOS14 Xcode15 Qt15.5 cmake iphone真機。 cmake報錯&#xff0c;報錯信息如下 CMake Error at /Users/user/Qt/5.15.5/ios/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:91 (m…

C#Wpf關于日志的相關功能擴展

目錄 一、日志Sink(接收器) 二、Trace追蹤實現日志 三、日志滾動 一、日志Sink(接收器) 安裝NuGet包&#xff1a;Serilog Sink有很多種&#xff0c;這里介紹兩種&#xff1a; Console接收器&#xff08;安裝Serilog.Sinks.Console&#xff09;; File接收器&#xff08;安裝…

CSM32RV003:國產高精度16位ADC低功耗RISC-V內核MCU

目錄 高精度ADC工業應用工業數據采集應用CSM32RV003簡介主要特性 高精度ADC工業應用 高精度ADC即高精度模數轉換器&#xff0c;是一種能夠將輸入模擬信號轉換為數字信號的芯片&#xff0c;在多種消費電子、工業、醫療和科研領域都有廣泛應用。高精度ADC的主要特點是能夠提供高…

深度學習圖像修復算法 - opencv python 機器視覺 計算機競賽

文章目錄 0 前言2 什么是圖像內容填充修復3 原理分析3.1 第一步&#xff1a;將圖像理解為一個概率分布的樣本3.2 補全圖像 3.3 快速生成假圖像3.4 生成對抗網絡(Generative Adversarial Net, GAN) 的架構3.5 使用G(z)生成偽圖像 4 在Tensorflow上構建DCGANs最后 0 前言 &#…

前端 HTML 的 DOM 事件相關知識有哪些?

HTML 的 DOM 事件是指在網頁上發生的各種事件&#xff0c;如點擊、鼠標移動、鍵盤輸入等。 通過 JavaScript 腳本可以對這些事件進行監聽和處理&#xff0c;以實現交互效果。以下是一些常見的 DOM 事件及其相關知識點&#xff1a; 1、click&#xff1a;點擊事件&#xff0c;在…