1. 程式人生 > >ONNX:開放神經網路交換

ONNX:開放神經網路交換

參考:

開放式神經網路交換(ONNX)是邁向開放式生態系統的第一步,使AI開發人員能夠隨著專案發展而選擇正確的工具。 ONNX為AI模型提供了一個開源格式。 它定義了一個可擴充套件的計算圖模型,以及內建運算子和標準資料型別的定義。 最初專注於推理(評估)所需的功能。

Caffe2,PyTorch,Microsoft Cognitive Toolkit,Apache MXNet和其他工具正在開發ONNX支援。 實現不同框架之間的互操作性並簡化從研究到生產的路徑將增加AI社群的創新速度。 ONNX處於早期階段,邀請社群提交反饋並幫助進一步發展ONNX。

總的來說,ONNX 是微軟聯合多個相關公司一起推動的深度學習模型標準

。該標準可以更好地為軟體和硬體廠商間提供更好的可互動性。多家公司的支援也利於推動不同框架內部的互操作支援。MMdnn也將支援ONNX格式

#安裝(支援conda,以在conda下安裝為例:)

1.用conda-forge建立分支:

conda install -c conda-forge onnx   
2.從 PyPi 安裝 ONNX(注意:設定 environment variable ONNX_ML=1 for onnx-ml)
pip install onnx
python setup.py install

注意:當在非anaconda環境安裝時,在執行pip安裝ONNX之前,要確保已經安裝了 Protobuff編譯器,例如,以Ubuntu為例:

sudo apt-get install protobuf-compiler libprotoc-dev
pip install onnx

3.安裝完成後,執行:

python -c "import onnx"

來驗證能否工作。請注意,該命令在 source checkout directory 中不起作用; 在這種情況下,你會看到:

ModuleNotFoundError: No module named 'onnx.onnx_cpp2py_export'

此時需要更換另一路徑來修復錯誤

#測試

ONNX用 作為測試驅動器。為了能執行測試,需要安裝pytest:

pip install pytest-cov nbval

pytest完成安裝後,執行:

pytest

轉載註明出處!

編輯

相關推薦

ONNX開放神經網路交換

參考:開放式神經網路交換(ONNX)是邁向開放式生態系統的第一步,使AI開發人員能夠隨著專案發展而選擇正確的工具。 ONNX為AI模型提供了一個開源格式。 它定義了一個可擴充套件的計算圖模型,以及內建運算子和標準資料型別的定義。 最初專注於推理(評估)所需的功能。Caffe2

深度學習花書學習筆記 第十章 序列建模迴圈神經網路

展開計算圖 就是將迴圈圖展開成展開圖而已。 迴圈神經網路   就是如上網路,將某一層不斷重複,輸出重新作為輸入的一部分。 雙向RNN 應用於上下文環境都影響結果的場景,如語音識別,文章翻譯等 基於編碼-解碼的序列到序列架構 可以將可變長度的輸入轉

六天搞懂“深度學習”之四基於神經網路的分類

分類用於確定資料所歸屬的類別,而回歸是根據已知的資料進行推斷或估計某個未知量,比如根據年齡和教育水平進行收入預測分析。分類的典型應用是垃圾郵件過濾和字元識別。 雖然神經網路適用於分類和迴歸,但卻很少用於迴歸。這不是因為它的效能不好,而是因為大多數迴歸問題可以用更簡單的模型來解決。(迴歸問

人工智慧(四)人工神經網路

在這裡我們只做總結梳理,具體的證明我們並不涉及,只要掌握原理,併為我們所用即可。 一、感知器——單個神經元 在說明神經網路之前,先介紹一下神經網路的基礎計算單元——神經元,也是一直沿用至今的“M-P神經元模型”。在這個模型中,神經元接收到來自n個其他神經元傳遞過來的輸入訊號,這些輸入訊

使用tensorflowLSTM神經網路預測股票(三)

原始資料處理 有朋友在qq群裡分享了原始資料處理的想法,例如調整origin_data_row引數、新增一些大盤的資料作為新的特徵等。所以這一篇我將原始資料以及原始資料的處理方法寫下來,為方便大家驗證、探

使用tensorflowLSTM神經網路預測股票(一)

基礎理論知識 關於深度學習和LSTM神經網路在網上有很多內容,這裡不再贅述,只列舉幾個優質的資源: 1. 深度學習入門:https://www.deeplearning.ai 百度前首席科學家吳恩達創立的網站,旨在傳播深度學習的基礎知識。他的視

簡述脈衝神經網路SNN下一代神經網路

脈衝神經網路(SNN)屬於第三代神經網路模型,實現了更高階的生物神經模擬水平。除了神經元和突觸狀態之外,SNN 還將時間概念納入了其操作之中。本文將簡要介紹這種神祕的神經網路形式。 所有對目前機器學習有所瞭解的人都聽說過這樣一個事實:目前的人工神經網路是第二代神經網路。

Hinton Neural Networks課程筆記4a使用神經網路做邏輯推理

PPT中的標題是Learning to predict the next word(學習預測下一個單詞),是從實際操作中得出的,但筆者認為這裡使用神經網路做邏輯推理的例子很典型,所以拿出來做標題了。 例子簡單講就是給定n個三元組(A,R,B)作為訓練集,然後給

吳恩達深度學習課程第二課第一週第一次作業神經網路簡單預測結果

# coding: utf-8 # # Initialization # Welcome to the first assignment of "Improving Deep Neural Networks". # # Training your neural

深度學習(Deep Learning)讀書思考八迴圈神經網路三(RNN應用)

概述 通過前兩小節的介紹,可以清楚的瞭解RNN模型的網路結構以及LSTM。本小節主要介紹RNN其他變形以及應用,包括 1.GRU單元 2.序列到序列(Seq2Seq)模型 3.注意力(Attention)模型 4.RNN在NLP中的應

McFly利用神經網路為 Bash 提供歷史命令搜尋功能

假如你在命令列模式下渡過了很長時間,那麼你必定使用過或者聽說過 BASH 的 反向搜尋 功能,在 Bash 中執行反向搜尋功能的快捷鍵是 Ctrl+r。通過使用這個特性,我們可以找到我們執行過的命令而無需再次輸入它們。當然,你可以使用上下鍵來搜尋你的 bash 命令記錄,但使用 Ctrl+r 快捷鍵可以讓這個

機器學習與神經網路(四)BP神經網路的介紹和Python程式碼實現

前言:本篇博文主要介紹BP神經網路的相關知識,採用理論+程式碼實踐的方式,進行BP神經網路的學習。本文首先介紹BP神經網路的模型,然後介紹BP學習演算法,推導相關的數學公式,最後通過Python程式碼實現BP演算法,從而給讀者一個更加直觀的認識。 1.BP網路模型 為了將理

機器學習(四)BP神經網路_手寫數字識別_Python

機器學習演算法Python實現 三、BP神經網路 全部程式碼 1、神經網路model 先介紹個三層的神經網路,如下圖所示 輸入層(input layer)有三個units(為

【深度學習】3BP神經網路與MNIST資料集實現手寫數字識別

前言:這是一篇基於tensorflow框架,建立的只有一層隱藏層的BP神經網路,做的圖片識別,內容也比較簡單,全當是自己的學習筆記了。 –—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-——-—-—-—-—-—-—-—-—-—-—-

獨家 | 初學者的問題神經網路中應使用多少隱藏層/神經元?(附例項)

作者:Ahmed Gad翻譯:蔣雨暢校對:李海明本文約2400字,建議閱讀8分鐘。本文將通過兩個

谷歌TPU研究論文專注神經網路專用處理器

OFweek通訊網訊 過去十五年裡,我們一直在我們的產品中使用高計算需求的機器學習。機器學習的應用如此頻繁,以至於我們決定設計一款全新類別的定製化機器學習加速器,它就是 TPU。 TPU 究竟有多快?今天,聯合在矽谷計算機歷史博物館舉辦的國家工程科學院會議上發表的有關 TPU 的演講中,我們釋出了一項研究,

【吳恩達deeplearning.ai】深度學習(9)迴圈神經網路

隨深度學習技術的發展,使用迴圈神經網路(Recurrent Neural Network,RNN)建立的各種序列模型,使語音識別、機器翻譯及自然語言理解等應用成為可能。 表示與型別 自然語言、音訊等資料都是前後相互關聯的資料,比如理解一句話要通過一整句而

深度學習迴圈神經網路(RNN)的變體LSTM、GRU

訪問請移步至,這裡有能“擊穿”平行宇宙的亂序並行位元組流… 假設我們試著去預測“I grew up in France… I speak fluent French”最後的詞French。當前的資訊建議下一個詞可能是一種語言的名字,但是如果我們需要弄清楚是什麼

從零開始機器學習-19 RNN迴圈神經網路

本文由 沈慶陽 所有,轉載請與作者取得聯絡! 前言 相比於適合單個物件的卷積網路(Convolutional Neural Network,CNN),迴圈網路(Recurrent Neural Network,RNN)更加適合序列型別的資料。迴圈網路應用

TFTF之Tensorboard實踐神經網路Tensorboard形式得到events.out.tfevents檔案+dos內執行該檔案本地伺服器輸出到網頁視覺化

import tensorflow as tf import numpy as np def add_layer(inputs, in_size, out_size, n_layer, activation_function=None): # add o