<label id="qqrfm"><meter id="qqrfm"></meter></label>
      <span id="qqrfm"></span><label id="qqrfm"><meter id="qqrfm"></meter></label>

        OpenI 啟智社區

        啟智社區,確實給力

        當前位置:首頁 > 資訊 > 社區動態 >

        【OpenI開源項目推薦-GammaGL】支持國內外主流深度學習框架的圖神經網絡算法庫

        • 發布時間:2022-06-22

        今天,OpenI要為大家推薦一款入駐社區的開源項目【GammaGL】,它是由北郵GAMMA LAB 與鵬城實驗室最新開源的圖神經網絡算法庫Gamma Graph Library (GammaGL),支持多后端深度學習框架,如TensorFlow、PyTorch、PaddlePaddle、MindSpore。


        除此之外,GammaGL遵循了PyTorch Geometric (PyG) 的Tensor-centric設計原則與接口設計,即將PyG擴展為TensorFlow Geometric、Paddle Geometric、MindSpore Geometric。同時,G還提供了二十幾個主流經典的模型,供大家一鍵切換后端使用。


        本文將介紹三個方面內容:


        • 根據背景介紹GammaGL的兩大特點:支持多后端和類PyG的設計原則;

        • GammaGL整體架構;

        • GammaGL使用方法。


        OpenI啟智社區開源地址:


        https://git.www.cnjfsc.com/GAMMALab/GammaGL


        背景介紹


        當前,深度學習框架主要由國外的TensorFlow、PyTorch主導,其深度學習生態由歐美主導,優先支持了Nvidia的GPU與Google的TPU,幾乎不支持國內的計算設備與操作系統。


        近年來,國內的AI框架如PaddlePaddle、MindSpore也獲得了巨大的發展,以及百度昆侖、華為Ascend等優秀國產芯片國產AI芯片獲得了更多的使用。而百花齊放的圖深度學習工具往往也是基于現有的深度學習框架,支持的后端也不盡相同。例如,


        不同深度學習框架有著各自的特點與優勢,比如PyTorch憑借著動態圖的設計原則在研究領域取得了主導地位,TensorFlow則憑借其效率獲得了工業界的青睞。


        開發者為了運行幾個開源算法,需要安裝多個框架多個版本的環境、cuda等依賴庫版本沖突,同時,國產框架的學習成本高、生態資源少,也一定程度上阻礙了國產AI框架與硬件的發展。


        為此,GammaGL團隊開源了支持多深度學習框架的圖神經網絡算法庫,能夠支持TensorFlow、PyTorch、PaddlePaddle、MindSpore等作為后端。


        同一套代碼支持不同深度學習后端


        GammaGL能夠只使用一套代碼在不同深度學習后端運行,這也是與DGL支持多后端的區別所在。


        DGL is framework agnostic.


        DGL is framework agnostic, meaning if a deep graph model is a component of an end-to-end application, the rest of the logics can be implemented in any major frameworks, such as PyTorch, Apache MXNet or TensorFlow.


        DGL利用DLPack在不同框架之間共享張量的結構,能夠將整個端到端的GNN模型(通常包含圖上的查詢與計算等)做到框架無關 (famework agnostic)。


        然而,一個完整的GNN應用還包含數據加載、GNN模型構建、訓練流程、評測等,這些均是框架特定的。


        例如,使用TensorFlow來替換PyTorch代碼時,會涉及到三類變動:


        • 模型類的繼承(使用 tensorflow.keras.layer.Layer 替換 torch.nn.Module)

        • 模型內子模塊與參數的初始化;

        • 框架特定的操作(如使用 tensorflow.matmul 替換 torch.matmul)


        為了避免不同框架下的代碼重復編寫,GammaGL基于支持多后端的深度學習框架TensorLayerX來實現圖神經網絡的基本組件與相關算法,將上述三類變動基于TensorLayerX來統一實現,即使用一套代碼即可在不同后端運行


        除此之外,用戶可能因為框架的某一特性對其有特殊偏好,GammaGL也支持使用框架自身的接口來編寫框架特定的操作,即TensorLayerX與某一框架混用的方式。


        類PyG的使用方法與用戶體驗


        PyG在Github已獲得14.8k stars,無疑是最受歡迎的圖神經網絡框架之一。同時,PyG是PyTorch-on-the-rocks,即使用Tensor-centric的API,并接近原生PyTorch的設計原則,使得其與PyTorch一樣擁有較高的易用性。所以,PyG也積累了大量的用戶,頂會源碼中也少不了PyG的身影。


        因此,GammaGL借鑒了PyG的設計框架,如Tensor-centric的API設計、類torchvision的數據變換與增強等。如果你是一個PyG的用戶或非常熟悉PyG,GammaGL將會非常友好,也將會擴展成為TensorFlow Geometric、Paddle Geometric、MindSpore Geometric。


        GammaGL整體框架




        GammaGL提供了一個多層的框架,為用戶提供了低級與高級的接口來構建GNN應用。它由下列組件組成:


        • 底層基于深度學習框架來支持,提供了自動微分的計算算子、數據管理與處理流程、訓練流程等,并由TensorLayerX使用統一接口進行封裝。

        • 圖數據組件負責圖數據的抽象、數據集的管理、圖變換等,為上層接口提供存儲與查詢功能。

        • 消息傳遞組件包含了消息傳遞機制三大函數的抽象以及底層算子的統一封裝,即將常用的scatter_xxx (segment_xxx) 與gather等進行統一并封裝。

        • 采樣組件負責擴大可訓練圖的規模,通過采樣的方式獲取子圖,進而使用小批量的訓練方式。

        • 模型層面,GammaGL預先提供了一些可以直接運行的樣例模型,還支持用戶自定義構建自己的模型。


        如何使用GammaML


        快速開始:

        1、安裝一種你希望使用的后端

        # For tensorflow
        pip install tensorflow-gpu # GPU version
        pip install tensorflow # CPU version
        
        # For torch, version 1.10
        # https://pytorch.org/get-started/locally/
        pip3 install torch==1.10.2
        
        # For paddle, any latest stable version
        # https://www.paddlepaddle.org.cn/
        python -m pip install paddlepaddle-gpu
        
        # For mindspore, GammaGL only supports version1.6.1, GPU-CUDA 11.1 and python 3.7.5
        # https://www.mindspore.cn/install
        pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.6.1/MindSpore/gpu/x86_64/cuda-11.1/mindspore_gpu-1.6.1-cp37-cp37m-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple


        2、從OpenI啟智社區安裝TensorLayerX

        # 從OpenI啟智社區安裝,更適合大陸用戶
        pip install git+https://git.www.cnjfsc.com/OpenI/TensorLayerX.git


        3、從OpenI啟智社區clone,安裝GammaGL

        # 可從OpenI啟智社區clone,更適合大陸用戶
        git clone https://git.www.cnjfsc.com/GAMMALab/GammaGL.git
        python setup.py install


        團隊在GitHub主頁提供了快速構建一個GNN模型與訓練流程的樣例。


        除此之外,GammaGL還提供了二十余個算法供大家使用,包含同質圖上一些經典的模型、對比學習模型、異質圖神經網絡模型等。





        同樣地,我們僅需使用命令行即可運行上述模型。


        以GCN為例,僅需指定環境變量即可運行相應的后端:

        # cd ./examples/gcn
        # set parameters if necessary
        CUDA_VISIBLE_DEVICES=0 TL_BACKEND=paddle python gcn_trainer.py


        還能通過`os`模塊來指定后端

        import os
        os.environ['TL_BACKEND'] = 'paddle' # tensorflow, torch, mindspore

        結語


        GammaGL在OpenI啟智社區已開源并接入TensorLayerX開源生態,積極為國產AI生態貢獻自己的力量。同時,GammaGL將持續不斷投入,加快新功能的開發與版本的迭代:聚焦于更多算法模型的集成、常用操作的開發、算子的優化與迭代等。


        歡迎大家使用GammaGL以及提出寶貴的意見,關于GammaGL的任何問題歡迎聯系: tyzhao@bupt.edu.cn。同時,OpenI啟智社區歡迎大家來合作,共建社區生態,開源立足國內,走向國際!




        主站蜘蛛池模板: 国产一级特黄高清免费大片| 亚洲精品欧洲精品| 国产va在线观看免费| 一区二区三区免费精品视频| 亚洲人成人网毛片在线播放| 亚洲一区二区三区日本久久九| 亚洲性日韩精品一区二区三区| 精品久久久久久久免费加勒比| 免费激情视频网站| 国产免费观看a大片的网站| 香蕉视频在线观看免费国产婷婷| 青娱分类视频精品免费2| 国产成年无码久久久免费| 男人的天堂网免费网站| 大地资源二在线观看免费高清| 成人免费福利视频| 亚洲精品无码av天堂| 亚洲最大的视频网站| 黄色大片免费网站| 一本久久免费视频| 黄色网址免费观看| 亚洲精品乱码久久久久久中文字幕| 久久久久亚洲Av无码专| 亚洲乱妇熟女爽到高潮的片| 国产精品免费AV片在线观看| 国产高清在线免费视频| 亚洲六月丁香六月婷婷蜜芽| 国产一级一毛免费黄片| 四虎影视永久免费观看| 国产人成亚洲第一网站在线播放| a级毛片免费在线观看| 国产免费久久精品久久久| 国产免费无码AV片在线观看不卡| 成人免费一区二区三区| 成年人视频在线观看免费| 免费鲁丝片一级观看| 久久国产亚洲观看| 老司机午夜在线视频免费观| 免费欧洲美女牲交视频| 国产成人3p视频免费观看| 亚洲乱色熟女一区二区三区丝袜|