小公尺開源框架MACE 原始碼閱讀筆記 1

2021-08-21 06:31:23 字數 1550 閱讀 5263

enum devicetype ; //框架支援的裝置型別及其對應id.
enum macestatus ; // 函式的返回型別
macetensor:定義了mace輸入輸出tensor,有幾個不同形式的建構函式

maceengine:作為mace框架引擎,根據建構函式傳入的devicetype執行相應的功能**

作為深入原始碼的第一步,下面我們一起看一下這個檔案。

class

macetensor::impl ;

macetensor::macetensor(const

std::vector

&shape,

std::shared_ptr

data)

const

std::vector

&macetensor::shape() const

const

std::shared_ptr

macetensor::data() const

std::shared_ptr

macetensor::data()

class

maceengine::impl ;

impl函式是建構函式,完成一些變數的初始化工作。與tensor相關的一些操作會在workspace下,因而此處建立了乙個workspace物件。

init函式

init函式完成maceengine的初始化工作。包括根據網路定義建立輸入輸出的儲存map,根據輸入輸出節點和devicetype建立tensor,初始化整個網路模型。init還有乙個過載函式,區別只是const unsigned char *model_dataconst std::string &model_data_file這兩個引數。後者通過loadmodeldata載入模型資料後呼叫前者完成初始化。

run函式

run函式根據輸入輸出檔案資訊,初始化的模型資訊和模型資料,以及device_type_型別呼叫相應的執行**。完成模型的前向運算。輸出運算結果並儲存。

《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具

檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...

原始碼閱讀 Glide原始碼閱讀之with方法(一)

前言 本篇基於4.8.0版本 原始碼閱讀 glide原始碼閱讀之with方法 一 原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 大多數情況下,我們使用glide 就一句 但是這一句 裡面蘊含著成噸的 with方法有以下幾個過載方法 publi...

php微框架 flight原始碼閱讀

flight 是乙個可擴充套件的php微框架,快速 簡單,能夠快速輕鬆地構建restful web應用程式,在github上有2k stars。框架 十分精簡,在幾分鐘內你就可以看完整個框架原始碼,使用起來也是很簡單優雅。正如它自己所介紹的 require flight flight.php fli...