# 昇思25天學習打卡營第10天 | 使用靜態圖加速

昇思25天學習打卡營第10天 | 使用靜態圖加速

文章目錄

  • 昇思25天學習打卡營第10天 | 使用靜態圖加速
    • 動態圖的開啟方式
    • 靜態圖的開啟方式
      • 基于全局context的開啟方式
      • 基于修飾器的開啟方式
    • 總結
    • 打卡

AI編譯框架分為兩種運行模式:

  • 動態圖模式: 計算圖的構建和計算同時發生(define by run),符合python的解釋執行方式。在調試模型時較為方便,能夠實時得到中間結果的值。但由于所有節點都需要保存,導致難以對整個計算圖進行優化。
  • 靜態圖模式: 計算圖的構建和實際計算分開(define and run)。在MindSpore中靜態圖模式又稱Graph模式,基于圖優化、計算圖整圖下沉等技術,編譯器可以對圖進行全局的優化,獲得較好的性能。適用于網絡固定且需要高性能的場景。

動態圖的開啟方式

在MindSpore中,動態圖又被稱為PyNative模式。可以通過:

mindspore.set_context(mode=mindspore.PYNATIVE_MODE)

進行全局啟用。

靜態圖的開啟方式

基于全局context的開啟方式

mindspore.set_context(mode=mindspore.GRAPH_MODE)

基于修飾器的開啟方式

使用jit修飾器修飾Python函數或者Python類的成員函數使其被編譯成計算圖。而模型的其他部分任舊使用解釋執行方式,在性能優化的同時而不丟失動態圖的靈活性。

@mindspore.jit  # 使用ms.jit裝飾器,使被裝飾的函數以靜態圖模式運行
def run(x):model = Network()return model(x)output = run(input)

或者

def run(x):model = Network()return model(x)run_with_jit = ms.jit(run)
output = run(input)

總結

這一節的內容對MindSpore框架中的兩種計算模式進行了介紹,動態圖模式十分靈活,可以方便的獲取中間結果,但由于節點是運行時定義并計算的,所以難以進行優化。而靜態圖模式模式直接編譯計算圖,可以方便的進行性能優化。通過jit修飾器可以在不失動態圖靈活性的情況下對部分計算進行優化。

打卡

請添加圖片描述

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

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

相關文章

讀人工智能全傳07智能體

1. 布魯克斯革命 1.1. 隨著科學認知的發展,有時候舊有科學體系會面臨全盤崩潰的危機,新的科學體系誕生,取代傳統的、既定的科學體系,這就意味著科學的范式將發生變化 1.2. 澳大利亞機器人學家羅德尼布魯克斯(Rodney Brooks)&…

DS1302實時時鐘芯片_讀寫時間實現電子鐘功能

一、前言 1.1 功能說明 本項目以STC90C51單片機為核心,結合DS1302實時時鐘芯片和IIC協議的OLED顯示屏,設計了一款功能豐富、操作簡便的電子時鐘。 【1】項目目標 實現高精度的時間顯示,包括時、分、秒。提供按鍵調整時間的功能&#xff0…

fatal error: NvInfer.h: No such file or directory 的參考解決方法

文章目錄 寫在前面一、問題描述二、解決方法參考鏈接 寫在前面 自己的測試環境&#xff1a; Ubuntu20.04 一、問題描述 編譯調用 tensorrt 的程序時&#xff0c;出現如下報錯&#xff1a; fatal error: NvInfer.h: No such file or directory7 | #include <NvInfer.h>…

sublime使用

快速格式化&#xff1a;control command j&#xff08;前提是安裝了Pretty JSON 插件&#xff09; 選中多行編輯&#xff1a;option command直接移動bar選中 多光標編輯功能對所有行進行相同的操作。以下是一些常用的方法&#xff1a; 1. 使用鼠標和鍵盤選擇多行 按住 Ctrl&am…

[Java]Swing版坦克大戰小游戲項目開發(1)——new出一個窗口

highlight: xcode theme: vuepress 前言 本系列文章帶領 Java 初學者學習使用 Java 語言結合 Swing 技術以及設計模式開發一款經典小游戲——坦克大戰。通過這個小游戲&#xff0c;你可以學會很多實用的設計模式思想&#xff0c;并且提高你的編碼水平。 熟悉Frame Frame 類是 J…

【java計算機畢設】基于java的奶茶店管理系統的設計與實現MySQL ssm JSP maven項目代碼源碼+文檔

目錄 1項目功能 2項目介紹 3項目地址 1項目功能 【java計算機畢設】奶茶店管理系統java MySQL ssm JSP maven項目源碼代碼萬字文檔 小組設計 2項目介紹 系統功能&#xff1a; 奶茶店管理系統包括管理員、用戶倆種角色。 管理員功能包括個人中心模塊用于修改個人信息和密碼、…

如何在 Ubuntu 14.04 上安裝和配置 Syncthing 來同步目錄

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 介紹 有許多程序可以在不同計算機之間同步文件。Syncthing 是一個引人注目的新選擇&#xff0c;它跨平臺、完全開源、非常靈活且易于使…

UDP通訊實現

服務器端&#xff1a; 1.獲取套接字 int fd;fdsocket(AF_INET,SOCK_DGRAM,0);if(fd<0){perror("socket");exit(0);} #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); -domain: 指定通信域&…

Elasticsearch 面試題指南

Elasticsearch 面試題指南 本文檔提供了一份詳細的 Elasticsearch 面試題指南&#xff0c;涵蓋了 Elasticsearch 的核心概念、架構、配置、操作和實際應用場景等方面的內容。希望通過這份指南能夠幫助你在 Elasticsearch 面試中取得成功。 目錄 Elasticsearch 基礎知識 什么…

Retrofit框架源碼深度剖析【Android熱門框架分析第二彈】

Android熱門框架解析&#xff0c;你確定不來看看嗎&#xff1f; OkHttp框架源碼深度剖析【Android熱門框架分析第一彈】 Retrofit框架源碼深度剖析【Android熱門框架分析第二彈】 什么是Retrofit&#xff1f; 準確來說&#xff0c;Retrofit 是一個 RESTful 的 HTTP 網絡請求…

網絡編程:數據包的封裝----libnet庫

使用libnet庫封裝數據包 安裝庫sudo apt-get install libnet-dev 1、數據包內存初始化 libnet_t *libnet_init(int injection_type, char *device, char *err_buf) 2、構造數據包&#xff0c; 由應用層UDP/TCP到MAC層的順序構造 封裝udp數據包的函數 libnet_ptag_t libnet_bui…

Miniconda的常見用法——以Isaacgym為例

1. ubuntu24.04安裝minicondda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh解釋下這段代碼 bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3~/miniconda3/miniconda.sh: 指向Mi…

java中Function、Consumer和Supplier是函數式接口嗎?

是的&#xff0c;在Java中&#xff0c;Function、Consumer 和 Supplier 都是函數式接口&#xff0c;它們都是Java 8引入的java.util.function包中的一部分。這些接口為Lambda表達式提供了類型支持&#xff0c;允許以更簡潔的方式表示方法引用和匿名內部類。 Function<T, R&g…

SHARPNESS-AWARE MINIMIZATION FOR EFFICIENTLY IMPROVING GENERALIZATION--論文筆記

論文筆記 資料 1.代碼地址 https://github.com/google-research/sam https://github.com/davda54/sam 2.論文地址 https://arxiv.org/abs/2010.01412 3.數據集地址 論文摘要的翻譯 在當今嚴重過度參數化的模型中&#xff0c;訓練損失的值很難保證模型的泛化能力。事實上…

代碼隨想錄算法訓練營第三十天|62.不同路徑、63. 不同路徑 II

62.不同路徑 一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為 “Finish” &#xff09;。 問總共有多少條不同的路徑&#xff…

軟設之生成器模式

生成器模式的意圖是:將一個復雜的類表示與其構造分離&#xff0c;使得相同的構建過程能夠得出不同的表示 Builder:抽象建造者&#xff0c;為創建一個產品對象各個部件指定抽象接口&#xff0c;把產品的生產過程分解為不同的步驟&#xff0c;從而使具體建造者在具體的建造步驟上…

Java中的對象克隆詳解

Java中的對象克隆詳解 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 對象克隆在Java編程中是一個重要的概念和技術。它允許我們創建一個對象的精確副本&…

MySQL第三次練習

作業三 一 先創建DB abc&#xff0c;創建table student 1、插入一條記錄 2、添加多條記錄 3、添加部分記錄 4、加0.5 5、刪除成績為空的記錄 二 1、創建一個用戶test1使他只能本地登錄擁有查詢student表的權限。 2、查詢用戶test1的權限。 3、刪除用戶test1. 全在一張圖上…

怎樣優化 PostgreSQL 中對日期時間范圍的模糊查詢?

文章目錄 一、問題分析&#xff08;一&#xff09;索引未有效利用&#xff08;二&#xff09;日期時間格式不統一&#xff08;三&#xff09;復雜的查詢條件 二、優化策略&#xff08;一&#xff09;使用合適的索引&#xff08;二&#xff09;規范日期時間格式&#xff08;三&a…