PyTorch Geometric(PyG):基于PyTorch的圖神經網絡(GNN)開發框架

PyTorch Geometric(PyG):基于PyTorch的圖神經網絡(GNN)開發框架

一、PyG核心功能全景圖

PyTorch Geometric(PyG)是基于PyTorch的圖神經網絡(GNN)開發框架,專為不規則結構數據(如圖、網格、點云)設計,提供從數據加載、模型構建到訓練優化的全流程工具鏈。其核心功能包括:

(一)多樣化圖算法支持

  • 經典GNN模型:實現GCN、GAT、GraphSAGE、GIN等主流圖卷積算法,支持節點/圖分類、鏈路預測等任務。
  • 幾何深度學習:涵蓋3D網格(Mesh)和點云(Point Cloud)處理工具,如torch_geometric.transforms中的點云增強算子。
  • 注意力機制:內置多頭注意力層(GATConv)、全局注意力(GlobalAttention),支持自定義注意力邏輯。

(二)高效數據處理與批量操作

  • 統一數據結構:通過Data類表示單圖(節點特征、邊索引、全局屬性),Batch類實現動態圖批量拼接。
  • 智能數據加載:支持小批量(Mini-Batch)訓練,內置DataLoaderNeighborSampler處理大規模圖的鄰域采樣。
  • 多GPU與分布式支持:集成PyTorch分布式接口,支持數據并行和模型并行,配套DistributedDataLoader實現跨節點數據分發。

(三)全流程工具生態

  • 數據集與基準:內置Cora、OGB等30+公開數據集,支持自定義數據集加載(繼承Dataset類)。
  • 模型解釋與評估:通過torch_geometric.explain模塊實現GNN歸因分析(如節點/邊重要性可視化),metrics模塊提供準確率、ROC-AUC等評估指標。
  • 性能優化:支持TorchScript編譯加速、CPU線程親和性設置(torch_geometric.profile),以及內存高效聚合(Memory-Efficient Aggregations)技術。

二、核心模塊與API詳解

(一)數據處理模塊:torch_geometric.data

類/函數功能描述
Data表示單圖結構,包含x(節點特征)、edge_index(邊索引)、y(標簽)等屬性
Batch將多個Data對象合并為批量輸入,自動處理節點/邊的索引偏移
DataLoader基于Batch的迭代器,支持自定義批量大小和數據打亂策略
InMemoryDataset內存型數據集基類,適用于小規模數據預處理后一次性加載
NeighborSampler大圖鄰域采樣器,支持分層采樣(如每層采樣固定數量鄰居)以降低內存消耗

代碼示例:創建自定義圖數據

from torch_geometric.data import Data# 節點特征(3個節點,每個節點2維特征)
x = torch.tensor([[0.0, 1.0], [2.0, 3.0], [4.0, 5.0]], dtype=torch.float)
# 邊索引(COO格式,源節點->目標節點)
edge_index = torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtype=torch.long)
# 圖標簽(可選)
y = torch.tensor([7], dtype=torch.long)# 構建單圖對象
data = Data(x=x, edge_index=edge_index, y=y)
print(data)  # 輸出:Data(edge_index=[2, 4], x=[3, 2], y=[1])

(二)模型構建模塊:torch_geometric.nn

1. 基礎圖卷積層
層類核心參數應用場景
GCNConvin_channels, out_channels(輸入/輸出維度)同構圖節點分類
GATConvheads(注意力頭數), concat(是否拼接多頭輸出)異質圖或需要注意力機制的場景
GraphConvaggr(聚合函數,如"add", “mean”, “max”)通用圖卷積
2. 高級組件
  • 池化層TopKPooling(基于節點重要性的Top-K池化)、GlobalAttentionPooling(全局注意力池化)。
  • 歸一化層GraphNorm(圖級歸一化)、InstanceNorm(實例歸一化)。
  • 注意力機制GATv2Conv(改進的注意力層,支持動態權重)、TransformerConv(圖結構中的Transformer)。

代碼示例:構建GCN模型

import torch
from torch_geometric.nn import GCNConv, global_mean_poolclass GCNModel(torch.nn.Module):def __init__(self, in_channels, hidden_channels, out_channels):super().__init__()self.conv1 = GCNConv(in_channels, hidden_channels)self.conv2 = GCNConv(hidden_channels, out_channels)def forward(self, x, edge_index, batch):# x: [N, in_channels], edge_index: [2, E], batch: [N](圖劃分標簽)x = self.conv1(x, edge_index).relu()  # 第一層卷積+ReLU激活x = self.conv2(x, edge_index)         # 第二層卷積x = global_mean_pool(x, batch)        # 圖級池化(全局平均池化)return x  # 輸出維度: [batch_size, out_channels]

(三)數據集模塊:torch_geometric.datasets

數據集類任務類型節點數邊數說明
Cora節點分類2,7085,278經典論文引用網絡
Planetoid節點分類~10k~15k包含Cora、Citeseer等
OGBN-Arxiv節點分類169k1.1MOGB大型基準數據集
QM9圖回歸~130k~1.6M分子性質預測

代碼示例:加載Cora數據集

from torch_geometric.datasets import Planetoid# 加載Cora數據集(自動下載至./data/Planetoid目錄)
dataset = Planetoid(root='./data/Cora', name='Cora')
data = dataset[0]  # 取第一個圖(單圖數據集,這里為整個Cora圖)
print(f"節點數: {data.num_nodes}, 邊數: {data.num_edges}")

三、實戰案例:基于GCN的分子屬性預測

(一)場景描述

任務:預測分子圖的物理屬性(如能級),使用QM9數據集(分子圖回歸任務)。

(二)代碼實現步驟

  1. 數據加載與預處理
from torch_geometric.datasets import QM9
from torch_geometric.loader import DataLoader
from torch_geometric.transforms import NormalizeFeatures# 加載QM9數據集并標準化特征
dataset = QM9(root='./data/QM9', transform=NormalizeFeatures())
# 劃分訓練集/測試集(QM9默認按索引順序排列,前11萬為訓練集)
train_dataset = dataset[:110000]
test_dataset = dataset[110000:]
# 創建數據加載器
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)
  1. 模型定義(GCN+全局池化)
import torch.nn.functional as F
from torch_geometric.nn import GCNConv, GlobalAttentionPoolingclass MolecularGCN(torch.nn.Module):def __init__(self, in_channels, hidden_channels, out_channels):super().__init__()self.conv1 = GCNConv(in_channels, hidden_channels)self.conv2 = GCNConv(hidden_channels, hidden_channels)self.pool = GlobalAttentionPooling(hidden_channels)  # 全局注意力池化self.lin = torch.nn.Linear(hidden_channels, out_channels)def forward(self, x, edge_index, batch):x = self.conv1(x, edge_index).relu()x = self.conv2(x, edge_index).relu()x = self.pool(x, batch)  # 池化后得到圖級特征x = self.lin(x)           # 回歸頭return x.squeeze()        # 輸出維度: [batch_size]
  1. 訓練與評估(均方誤差損失)
import torch.optim as optim
from torchmetrics.regression import MeanSquaredErrordevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = MolecularGCN(in_channels=9, hidden_channels=64, out_channels=1).to(device)
optimizer = optim.Adam(model.parameters(), lr=0.001)
mse_metric = MeanSquaredError().to(device)def train():model.train()total_loss = 0for data in train_loader:data = data.to(device)optimizer.zero_grad()out = model(data.x, data.edge_index, data.batch)loss = F.mse_loss(out, data.y[:, 0])  # 預測第一個屬性(HOMO-LUMO能隙)loss.backward()optimizer.step()total_loss += loss.item() * data.num_graphsreturn total_loss / len(train_loader.dataset)def test(loader):model.eval()total_error = 0for data in loader:data = data.to(device)out = model(data.x, data.edge_index, data.batch)total_error += mse_metric(out, data.y[:, 0]).item() * data.num_graphsreturn total_error / len(loader.dataset)# 訓練循環
for epoch in range(1, 201):loss = train()test_loss = test(test_loader)print(f"Epoch: {epoch:03d}, Train MSE: {loss:.4f}, Test MSE: {test_loss:.4f}")

四、擴展功能與最佳實踐

(一)模型部署與加速

  • TorchScript編譯:通過torch.jit.script(model)將GNN模型轉換為可序列化的TorchScript格式,支持生產環境部署(如Python/C++推理)。
  • 多GPU訓練:使用torch_geometric.loader.DataLoader配合torch.nn.parallel.DataParallelDistributedDataParallel實現數據并行訓練。

(二)自定義消息傳遞層

繼承torch_geometric.nn.MessagePassing類,實現messageaggregateupdate方法,例如自定義圖注意力機制:

from torch_geometric.nn import MessagePassingclass CustomGAT(MessagePassing):def __init__(self, in_channels, out_channels):super().__init__(aggr='add')  # 聚合方式:求和self.lin = torch.nn.Linear(in_channels, out_channels)self.att = torch.nn.Parameter(torch.randn(out_channels, 1))def message(self, x_i, x_j):# x_i: [E, out_channels](源節點特征),x_j: [E, out_channels](目標節點特征)alpha = (x_i + x_j) @ self.att  # 計算注意力分數alpha = F.leaky_relu(alpha)return x_j * alpha.sigmoid()  # 帶注意力權重的消息

五、生態與學習資源

  • 官方文檔:PyG Documentation 提供模塊API、速查表(Cheatsheets)和進階指南。
  • 社區與案例:GitHub倉庫(pyg-team/pytorch_geometric)包含大量示例(如知識圖譜補全、3D點云分割)。
  • 論文復現:參考torch_geometric.nn中的算法實現(如GCN、GraphSAGE),結合torch_geometric.datasets的基準數據集復現經典論文。

五、高級模塊與API全景:超越基礎的圖學習能力

(一)采樣與規模化訓練:torch_geometric.sampler

核心功能:處理超大規模圖的內存優化
  • 分層鄰域采樣
    • NeighborSampler:支持多跳鄰域采樣(如每層采樣固定數量鄰居),生成子圖用于批量訓練,避免全圖計算的內存爆炸。
    • AdaptiveSampler:根據節點重要性動態調整采樣規模,提升關鍵節點的特征學習效率。
  • 負采樣
    • NegativeSampler:為鏈路預測任務生成負樣本,支持均勻采樣、度數加權采樣等策略。
  • 代碼示例:分層采樣器初始化
    from torch_geometric.sampler import NeighborSampler# 假設data為全圖數據(edge_index為COO格式)
    sampler = NeighborSampler(data.edge_index, sizes=[25, 10],  # 兩層采樣,每層分別采樣25和10個鄰居batch_size=1024, shuffle=True
    )
    

(二)分布式訓練:torch_geometric.distributed

核心能力:跨節點/跨GPU的大規模圖訓練
  • 數據并行與模型并行
    • DistributedDataLoader:支持將大圖切分為子圖,通過PyTorch分布式接口(如torch.distributed)實現多機多卡訓練。
    • HeteroDataParallel:針對異構圖的分布式訓練,支持不同類型節點/邊的并行計算。
  • 遠程后端集成
    • 支持與DGL-Lightning、PyTorch Lightning結合,通過遠程服務器(如AWS/GCP)擴展訓練規模。
  • 代碼示例:初始化分布式數據加載器
    import torch.distributed as dist
    from torch_geometric.distributed import DistributeDataParallel, DistributedDataLoader# 初始化分布式環境
    dist.init_process_group(backend='nccl')
    # 分布式數據加載器(假設dataset已劃分為多個分區)
    loader = DistributedDataLoader(dataset, batch_size=64, num_workers=4, shuffle=True
    )
    

(三)模型解釋與可解釋性:torch_geometric.explain

核心工具:GNN歸因分析與可視化
  • 歸因方法
    • GNNExplainer:通過擾動節點/邊特征,量化其對模型預測的貢獻度,生成關鍵子圖。
    • PGExplainer:基于路徑的解釋方法,適用于異構圖或長距離依賴場景。
  • 可視化
    • 集成matplotlibnetworkx,支持將解釋結果(如重要節點/邊)渲染為交互式圖。
  • 代碼示例:解釋GCN模型預測
    from torch_geometric.explain import GNNExplainer# 假設model為訓練好的GCN模型,data為待解釋的圖數據
    explainer = GNNExplainer(model)
    explanation = explainer.explain_node(node=0, x=data.x, edge_index=data.edge_index)
    print(f"重要邊數: {explanation.edge_mask.sum().item()}")
    

(四)性能優化與分析:torch_geometric.profile

核心功能:細粒度性能調優
  • CPU親和性設置
    • set_cpu_affinity:為數據加載線程分配特定CPU核心,減少線程競爭,提升數據預處理速度。
  • 內存分析
    • MemoryTracker:跟蹤模型訓練中的內存占用,定位泄漏點(如未釋放的中間變量)。
  • 代碼示例:設置CPU親和性
    from torch_geometric.profile import set_cpu_affinity# 將當前線程綁定到CPU核心0-3
    set_cpu_affinity(cores=[0, 1, 2, 3])
    

(五)異構圖與多模態支持:torch_geometric.data.HeteroData

核心數據結構:處理復雜圖結構
  • 異構圖表示
    • HeteroData類支持不同類型的節點(如用戶/商品)和邊(如點擊/購買),通過字典式接口訪問屬性:
    from torch_geometric.data import HeteroDatahetero_data = HeteroData()
    # 添加用戶節點(類型為'user',特征維度128)
    hetero_data['user'].x = torch.randn(100, 128)
    # 添加商品節點(類型為'item',特征維度64)
    hetero_data['item'].x = torch.randn(500, 64)
    # 添加用戶-商品交互邊(類型為'click')
    hetero_data['user', 'click', 'item'].edge_index = torch.randint(0, 100, (2, 5000))
    
  • 異構圖卷積層
    • HeteroConv支持為不同邊類型分配獨立的卷積層,例如:
    from torch_geometric.nn import HeteroConv, GCNConv, GATConvconv = HeteroConv({'click': GCNConv(128, 64),  # 用戶→商品邊使用GCN'follow': GATConv(128, 64, heads=4)  # 用戶→用戶邊使用GAT
    }, aggr='sum')  # 聚合方式:求和
    

(六)實驗管理與超參數搜索:torch_geometric.graphgym

核心工作流:自動化實驗流水線
  • 配置驅動開發
    • 通過YAML配置文件定義模型架構、訓練參數、數據預處理流程,例如:
    model:name: GCNin_channels: 1433hidden_channels: 64out_channels: 7
    train:epochs: 200lr: 0.01weight_decay: 5e-4
    
  • 超參數搜索
    • 集成Ray Tune、Optuna,支持網格搜索、貝葉斯優化等策略,自動運行多組實驗并記錄結果。
  • 可視化與日志
    • 內置Weights & Biases集成,實時繪制訓練曲線、對比不同模型性能。

六、前沿技術模塊:探索PyG的擴展生態

(一)自定義算子與CUDA加速:torch_geometric.utils

高級工具函數:
  • 稀疏矩陣操作
    • to_scipy_sparse_matrix:將PyG的edge_index轉換為Scipy稀疏矩陣,便于與傳統圖算法(如PageRank)結合。
    • add_remaining_self_loops:為圖添加自環邊,支持指定概率或均勻添加。
  • CUDA優化
    • sort_edge_index:對edge_index進行排序和去重,提升GPU計算效率(尤其在使用CuPy等庫時)。

(二)3D幾何數據處理:torch_geometric.transforms

高級變換:
  • 點云增強
    • RandomTranslate:隨機平移點云坐標,增強模型魯棒性。
    • NormalizeScale:按質心和尺度歸一化點云,消除位置與大小差異。
  • 網格處理
    • FaceToEdge:將網格的面(Face)轉換為邊(Edge),便于圖卷積處理。
    • SubdivideMesh:細分網格表面,增加節點密度以提升特征學習精度。

(三)對比學習與圖增廣:torch_geometric.transforms

自監督學習支持:
  • 圖級增廣
    • RandomNodeDropout:隨機刪除節點(模擬遮擋)。
    • EdgePerturbation:隨機添加/刪除邊(破壞圖結構)。
  • 對比損失函數
    • 結合torch_geometric.nn.ContrastiveLoss,實現基于圖結構的對比學習,例如:
    from torch_geometric.nn import ContrastiveLoss# 假設z1和z2為同一圖的兩個增廣視圖的特征
    loss_fn = ContrastiveLoss()
    loss = loss_fn(z1, z2)
    

七、工業級應用場景:高級功能的實戰組合

(一)超大規模推薦系統(億級節點)

  • 技術棧
    • HeteroData表示用戶-商品-類別異構圖。
    • NeighborSampler進行分層采樣,配合DistributedDataLoader實現多機訓練。
    • GATConv捕捉用戶與商品的交互模式,GlobalAttentionPooling生成用戶/商品嵌入。
  • 性能優化
    • 使用torch_geometric.profile優化CPU線程分配,TorchScript編譯模型用于在線推理。

(二)分子生成與藥物發現(生成式GNN)

  • 技術棧
    • torch_geometric.transforms進行分子圖增廣(如隨機原子類型替換)。
    • HeteroConv處理異質原子(C/H/O)和化學鍵(單鍵/雙鍵)。
    • 結合torch_geometric.explain分析關鍵官能團對屬性的影響。

八、深度API索引:高級模塊速查表

模塊核心類/函數功能描述
torch_geometric.samplerNeighborSampler分層鄰域采樣,支持多跳子圖生成
AdaptiveSampler動態重要性采樣,優先保留關鍵節點
torch_geometric.distributedDistributeDataParallel分布式GNN訓練,支持數據并行與模型并行
partition_graph將大圖劃分為多個子圖,用于分布式存儲
torch_geometric.explainGNNExplainer模型歸因分析,生成關鍵子圖和特征重要性
ExplainableGraphNet可解釋圖神經網絡,內置注意力機制的可解釋性支持
torch_geometric.profileMemoryTracker內存使用跟蹤,定位訓練中的內存泄漏
Benchmark性能基準測試,對比不同采樣策略/模型架構的效率
torch_geometric.graphgymAutoConfig自動生成實驗配置模板
run experiment執行多組超參數實驗,支持分布式訓練

五、總結:從基礎到前沿的PyG技術演進

PyTorch Geometric的高級功能已從單純的算法實現延伸至規模化訓練可解釋性異構數據處理自動化實驗等工業級場景。通過深入理解samplerdistributedexplain等模塊,開發者能夠應對億級節點圖的訓練挑戰,同時滿足模型可解釋性和性能優化的需求。未來,隨著PyG對生成式GNN、3D幾何學習等前沿領域的持續投入,其將進一步成為連接學術研究與工業落地的橋梁。

延伸探索

  • 官方示例庫:PyG Examples 包含異構圖、分布式訓練、3D點云等高級場景代碼。
  • 技術論文:參考PyG官方文檔中“Advanced Concepts”章節,了解分層采樣、內存優化等技術的理論背景。

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

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

相關文章

亮相戛納電影節、北京電影節的影星

?17日,由高圓圓、古天樂主演的《風林火山》劇組,在第78屆戛納影展上走紅毯亮相,記者爭相拍照,風光無限。 值得關注的是,導演麥浚龍以一身黑色晚禮服踏上紅毯,微笑間顯得躊躇滿志;古天樂則以白色…

Django框架的前端部分使用Ajax請求一

Ajax請求 目錄 1.ajax請求使用 2.增加任務列表功能(只有查看和新增) 3.代碼展示集合 這篇文章, 要開始講關于ajax請求的內容了。這個和以前文章中寫道的Vue框架里面的axios請求, 很相似。后端代碼, 會有一些細節點, 跟前幾節文章寫的有些區別。 一、ajax請求使用 我們先…

IP地址代理公司:服務模式與行業應用探析

隨著數據驅動型經濟的快速發展和互聯網應用的普及,IP地址代理服務逐漸成為支持多種網絡業務的重要組成部分。近年來,提供代理IP服務的公司遍地開花,這一市場強調供給的技術深度和服務靈活性,而代理IP公司本身也逐步從單一的技術供…

C語言練手磨時間

167. 兩數之和 II - 輸入有序數組 給你一個下標從 1 開始的整數數組 numbers &#xff0c;該數組已按 非遞減順序排列 &#xff0c;請你從數組中找出滿足相加之和等于目標數 target 的兩個數。如果設這兩個數分別是 numbers[index1] 和 numbers[index2] &#xff0c;則 1 <…

本地部署Firecrawl+Dify調用踩坑記錄

最近自己研究Dify&#xff0c;使用到Firecrawl這個比較好用的工具。用Firecrawl官網的不知道為什么總是卡住得不到結果&#xff0c;于是我打算自己去本地部署一個。好家伙真給我人搞麻了&#xff0c;太多問題了。 我是在京東云上面租的一臺服務器。 首先就是docker的安裝&…

iOS SwiftUI的具體運用實例(SwiftUI庫的運用)

最近接觸到一個 SwiftUI的第三方框架&#xff0c;它非常的好用。以下是 具體運用實例&#xff0c;結合其核心功能與開發場景&#xff0c;分多個維度進行詳細解析&#xff1a; 一、基礎 UI 組件開發 登錄界面 SwiftUI 的 VStack、TextField 和 Button 可快速構建用戶登錄表單。例…

【C++】模板上(泛型編程) —— 函數模板與類模板

文章目錄 一、啥是泛型編程二、函數模板2.1、函數模板的概念2.2、函數模板的格式2.3、函數模板的原理2.4、函數模板的實例化2.4.1、隱式實例化&#xff1a;讓編譯器根據實參推演模板參數的實際類型2.4.2、顯示實例化&#xff1a;在函數名后的<>中指定模板參數的實際類型 …

語音識別-2

目錄 1.藍牙優化 1.打開sco 2.外放時的藍牙的不同版本適配 2.微軟文本轉語音優化 1.異步文本轉語音 2.語音的個性化 上一篇關于語音識別, 雖然能用,但在系統適配,機器適配方面,速度,性能等還是有優化的地方.所以這篇是關于這些的. 1.藍牙優化 A2DP:是一種單向的高品質音…

【springcloud學習(dalston.sr1)】服務消費者通過restTemplate來訪問服務提供者(含源代碼)(五)

該系列項目整體介紹及源代碼請參照前面寫的一篇文章??????【springcloud學習(dalston.sr1)】項目整體介紹&#xff08;含源代碼&#xff09;&#xff08;一&#xff09; springcloud學習&#xff08;dalston.sr1&#xff09;系統文章匯總如下&#xff1a; 【springcloud…

小白學編程之——數據庫如何性能優化

小白學編程之——數據庫性能優化指南 數據庫如同一個大型倉庫&#xff0c;性能優化就是幫助倉庫管理員&#xff08;數據庫&#xff09;更高效地存取貨物&#xff08;數據&#xff09;。本文將以通俗易懂的方式&#xff0c;帶你避開常見誤區&#xff0c;讓數據庫運行得更快更穩…

SQLMesh信號機制詳解:如何精準控制模型評估時機

SQLMesh的信號機制為數據工程師提供了更精細的模型評估控制能力。本文深入解析信號機制的工作原理&#xff0c;通過簡單和高級示例展示如何自定義信號&#xff0c;并提供實用的使用技巧和測試方法&#xff0c;幫助讀者優化數據管道的調度效率。 一、為什么需要信號機制&#xf…

FreeSWITCH 簡單圖形化界面43 - 使用百度的unimrcp搞個智能話務臺,用的在線的ASR和TTS

FreeSWITCH 簡單圖形化界面43 - 使用百度的unimrcp搞個智能話務臺 0、一個fs的web配置界面預覽1、安裝unimrcp模塊2、安裝完成后&#xff0c;配置FreeSWITCH。2.1 有界面的配置2.1.1 mod_unimrcp模塊配置2.1.2 mod_unimrcp客戶端配置 2.2 無界面的配置 3、呼叫規則4、編寫流程4…

【架構】RUP統一軟件過程:企業級軟件開發的全面指南

一、RUP概述 RUP(Rational Unified Process&#xff0c;統一軟件過程)是由Rational Software公司(后被IBM收購)開發的一種迭代式軟件開發過程框架。它結合了傳統瀑布模型的系統性和敏捷方法的靈活性&#xff0c;為中大型軟件項目提供了全面的開發方法論。 RUP不僅僅是一種過程…

DeepSeek賦能電商,智能客服機器人破解大型活動人力困境

1. DeepSeek 與電商客服結合的背景 1.1 電商行業客服需求特點 電商行業具有獨特的客服需求特點&#xff0c;這些特點決定了智能客服機器人在該行業的必要性和重要性。 高并發性&#xff1a;電商平臺的用戶數量龐大&#xff0c;尤其是在促銷活動期間&#xff0c;用戶咨詢量會…

面向具身智能的視覺-語言-動作模型(VLA)綜述

具身智能被廣泛認為是通用人工智能&#xff08;AGI&#xff09;的關鍵要素&#xff0c;因為它涉及控制具身智能體在物理世界中執行任務。在大語言模型和視覺語言模型成功的基礎上&#xff0c;一種新的多模態模型——視覺語言動作模型&#xff08;VLA&#xff09;已經出現&#…

后端框架(1):Mybatis

什么是框架&#xff1f; 蓋高樓&#xff0c;框架結構。 框架結構就是高樓的主體&#xff0c;基礎功能。 把很多基礎功能已經實現了(封裝了)。 在基礎語言之上&#xff0c;對各種基礎功能進行封裝&#xff0c;方便開發者&#xff0c;提高開發效率。 mybatis&#xff1a;對jd…

ubuntu20.04系統搭建k8s1.28集群-docker作為容器運行時

ubuntu系統搭建 ubuntu-22.04.5-desktop-amd64.iso映像文件--->實際卻是20.4focal版本。 【安裝過程沒有特別指出的默認回車下一步】 【用戶和密碼設置】 【網絡連接】 【在vmware上安裝的話&#xff0c;網絡配置如下】【在vm里配置選擇nat或者橋接即可】 【國內源配置】&…

軟件I2C

軟件I2C 注意&#xff1a; SDA&#xff08;串行數據線&#xff09;和SCL&#xff08;串行時鐘線&#xff09;都是雙向I/O線&#xff0c;接口電路為開漏輸出。需通過上拉電阻接電源VCC。 軟件I2C說明 說明&#xff0c;有的單片機沒有硬件I2C的功能&#xff0c;或者因為電路設計…

C++性能測試工具——Vtune的使用

一、Intel Vtune的安裝 在前面初步認識了一下幾個性能的測試工具&#xff0c;本篇重點介紹一下Intel VTune Profiler&#xff0c;VTune是一個強大的性能分析工具&#xff0c;它屬于Intel oneAPI工具包中工具的一種。VTune的安裝只介紹在Linux平臺下的場景&#xff08;Windows安…

互聯網大廠Java求職面試:優惠券服務架構設計與AI增強實踐-6

互聯網大廠Java求職面試&#xff1a;優惠券服務架構設計與AI增強實踐-6 場景設定&#xff1a;技術總監張總坐在會議室里&#xff0c;鄭薪苦帶著自信的微笑走了進來。今天他們要圍繞優惠券服務的架構設計及如何結合AI進行增強展開討論。 第一輪面試&#xff1a;基礎架構設計 …