ONNX人工智能技術與開發實踐

吳建明 吳一昊

  • 出版商: 化學工業
  • 出版日期: 2025-05-01
  • 售價: $528
  • 語言: 簡體中文
  • 頁數: 288
  • ISBN: 7122474313
  • ISBN-13: 9787122474315
  • 尚未上市,歡迎預購

商品描述

ONNX(Open Neural Network Exchange,開放神經網絡交換)是一種開放格式,用於存儲深度神經網絡模型。ONNX由微軟和Facebook於2017年共同推出,旨在促進不同深度學習框架之間的模型交換和互操作性。ONNX定義了一組與環境和平臺無關的標準格式,使得AI模型可以在不同的框架和環境下交互使用。經過短短幾年的發展,ONNX已經成為表示深度學習模型的實際標準。它還支持傳統非神經網絡機器學習模型。ONNX有望成為整個AI模型交換的標準。 全書包括6章,分別為ONNX安裝與使用、ONNX運行時與應用開發技術、ONNX各種功能與性能分析、ONNX數據與操作數優化、ONNX模型性能與應用、ONNX創新開發案例分析。 本書適合從事AI算法、軟件、硬件開發的工程師閱讀,也可供科研人員、高校師生、技術管理人員參考使用。

目錄大綱

第1章 ONNX安裝與使用
1.1 安裝ONNX運行時(ORT)
1.1.1 環境要求
1.1.2 使用Python安裝ONNX
1.1.3 使用C# /C/C++/WinML安裝ONNX
1.2 使用ONNX運行時
1.2.1 在Python中使用ONNX運行時
1.2.2 在C++中使用ONNX運行時
1.3 構建ONNX運行時
1.3.1 構建ONNX運行時的方式
1.3.2 ONNX運行時API概述
1.3.3 API詳細信息
1.4 支持程序相關API
第2章 ONNX運行時與應用開發技術
2.1 ONNX運行時支持程序
2.1.1 ONNX運行時支持程序簡介
2.1.2 支持程序摘要
2.1.3 添加支持程序
2.2 ONNX原理介紹
2.2.1 ONNX基本概念
2.2.2 ONNX的輸入、輸出、節點、初始化器、屬性
2.2.3 元素類型
2.2.4 什麽是opset版本?
2.2.5 子圖、測試和循環
2.2.6 算子掃描
2.2.7 工具
2.3 ONNX與Python
2.3.1 線性回歸示例
2.3.2 初始化器,改進的線性規劃
2.3.3 遍歷ONNX結構並檢查初始化器
2.4 運算符屬性
2.5 根據符號計算矩陣中所有浮點數的總和
2.6 樹集合回歸器
2.7 程序創建和驗證模型功能
2.8 ONNX模型使用開發示例分析
2.8.1 開發環境
2.8.2 創建控制台應用程序
2.8.3 時間序列異常檢測
2.8.4 尖峰檢測
2.9 在ML.NET中使用ONNX檢測對象
2.9.1 環境配置
2.9.2 目標檢測示例
第3章 ONNX各種功能與性能分析
3.1 Python API概述
3.1.1 加載ONNX模型
3.1.2 加載帶有外部數據的ONNX模型
3.1.3 操作TensorProto和Numpy數組
3.1.4 使用輔助函數創建ONNX模型
3.1.5 用於映射ONNX IR中屬性的轉換實用程序
3.1.6 檢查ONNX模型
3.1.7 ONNX實用功能
3.1.8 ONNX形狀推理
3.1.9 ONNX模型文本語法
3.1.10 類型表示
3.1.11 ONNX版本轉換器
3.2 ONNX中的廣播
3.2.1 多向廣播
3.2.2 單向廣播
3.3 ONNX操作符可區分性標簽簡短指南
3.3.1 差異性標簽
3.3.2 定義差異性標簽的方法
3.4 維度表示
3.4.1 維度表示的目的
3.4.2 表示定義
3.4.3 表示傳播
3.4.4 表示驗證
3.5 外部數據
3.5.1 加載帶有外部數據的ONNX模型
3.5.2 將ONNX模型轉換為外部數據
3.5.3 使用外部數據檢查模型
3.6 ONNX模型庫
3.6.1 基本用法
3.6.2 ONNX中心架構
3.7 開放神經網絡交換中間表示(ONNX IR)規範
3.7.1 ONNX IR中間表示的作用
3.7.2 ONNX IR中間表示組件
3.7.3 可擴展計算圖模型
3.7.4 數據流圖
3.7.5 張量表達式
3.7.6 靜態張量形狀
3.8 實現ONNX後端
3.8.1 什麽是ONNX後端?
3.8.2 統一後端接口
3.8.3 ONNX後端測試
第4章 ONNX數據與操作數優化
4.1 管理實驗操作符和圖像類別定義
4.1.1 棄用的實驗操作符
4.1.2 圖像類別定義
4.2 ONNX類型
4.2.1 PyTorch中的示例
4.2.2 操作符慣例
4.3 E4M3FNUZ和E5M2FNUZ
4.3.1 指數偏差問題
4.3.2 Cast節點用於數據類型轉換
4.4 整數類型(4位)
4.4.1 整數類型(4位)概述
4.4.2 Cast節點用於數據類型轉換、包裝和拆包
4.5 浮點數(4位)
4.5.1 浮點數(4位)概述
4.5.2 E2M1、包裝和拆包
4.6 ONNX如何使用onnxruntime.InferenceSession函數
4.6.1 操作符測試代碼示例
4.6.2 函數定義
4.6.3 函數屬性
4.7 自定義算子
4.7.1 添加算子
4.7.2 控制操作測試
4.7.3 自定義運算符
4.7.4 縮減運算符配置文件
4.8 分析工具
4.8.1 代碼內性能分析
4.8.2 支持程序分析
4.8.3 GPU性能分析
4.8.4 記錄和跟蹤
4.9 線程管理
4.9.1 主要內容介紹
4.9.2 設置操作內線程數
4.9.3 線程旋轉規則
4.9.4 設置互操作線程數
4.9.5 設置操作內線程關聯
4.9.6 Numa支持和性能調優
4.10 自定義線程回調與應用
4.10.1 自定義線程回調
4.10.2 在自定義操作中的I/O綁定
4.11 量化ONNX模型
4.11.1 量化概述
4.11.2 ONNX量化表示格式
4.11.3 量化ONNX模型
4.11.4 量化示例
4.11.5 方法選擇
4.11.6 量化為Int4/UInt
4.12 創建float16和混合精度模型
4.12.1 float16轉換解析
4.12.2 混合精度
第5章 ONNX模型性能與應用
5.1 ONNX運行時圖形優化
5.1.1 ONNX運行時圖形優化概述
5.1.2 ONNX運行時圖形優化使用方法
5.2 ORT模型格式
5.2.1 ORT模型格式是什麽?
5.2.2 將ONNX模型轉換為ORT格式
5.2.3 將ONNX模型轉換為ORT格式腳本用法
5.3 加載並執行OR