原创 Cook-Toom 算法做快速卷積

背景 卷積是信號處理中的重要操作,在深度學習中更是重中之重,所以有必要對一些經典的快速卷積方法做一些瞭解。 在查閱了若干資料後,對於Cook-Toom算法,以下簡稱CT算法,有了一定的瞭解,記錄一下,便於以後查閱。 卷積介紹 由於

原创 TensorFlow + MKL 內存泄漏及解決辦法

TensorFlow + MKL 內存泄漏及解決辦法 背景 最近在做深度學習在線推理相關的項目,底層使用TF來作爲推斷框架,我們知道,TF底層是用Eigen完成CPU的計算的,而Eigen的速度只能說一般般,與成熟的計算庫在性能

原创 深度學習應用開發架構的一種思路

深度學習應用開發架構的一種思路 背景 深度學習當下依然處在風口,它從一開始解決單一場景中單一問題的算法,逐步成長爲能夠解決複雜問題的效率工具。 隨着深度學習相關的各項技術的發展,對深度學習的要求也越來越具體:一方面是朝着小而快的方

原创 一步步復現google/mediapipe的各種功能:手勢、人臉、目標檢測等

背景 最近項目中要用到手勢檢測以及手勢關鍵點追蹤,回想起google的這篇文章“On-Device, Real-Time Hand Tracking with MediaPipe”,打不開這個的,也可以看“中文版”,給出的效果是這

原创 MNN 中的矩陣乘法

背景 之前也寫過sgemm,然後就想看看MNN是如何實現的,有沒有什麼可以借鑑的地方,看完之後發現MNN的實現也是簡單的按行數據並行處理,記錄一下。 矩陣乘法 矩陣乘法的目的是完成一個計算:C = A * B,其中A是h * k,

原创 從0開始使用TensorFlow.js進行深度學習推斷

原因 最近項目裏面考慮要在微信小程序裏面加上識別觸發以及檢測追蹤的功能,所以需要調研一下在Web端進行深度學習前向的可行性。這個可行性主要包含兩個方面,一是模型是否支持:能否從現有模型轉換爲tfjs支持的模型;二是性能:tfjs的

原创 TensorFlow c++ SessionFactory註冊與No session factory registered錯誤

TensorFlow c++ SessionFactory註冊與No session factory registered錯誤 背景 近期我們在服務器上使用TensorFlow來進行推理,作爲雲推理服務的基礎。具體如何使用tens

原创 詳解100行c11線程池 ThreadPool.h

介紹 這個大神的100行實現c11線程池,真的是相當簡潔給力,偶爾會在項目裏面使用,但是老實說一直是迷迷糊糊,並不清楚具體實現細節,現在有空學習了一波,記錄一下,方便以後查閱。 ThreadPool.h #ifndef THREA

原创 TensorFlow2.0的動態圖和靜態圖切換 part 1

TensorFlow2.0的動態圖和靜態圖切換 tf.function介紹 動態圖是tf2.0最引人注目的特徵,大部分其他改動都是爲了適應動態圖。它允許將一部分python語法轉換爲可移植、高性能、語言無關的TensorFlow1

原创 TensorFlow 源碼閱讀[0]

背景 最近有一點時間,決定擼一擼TF的源碼,知其然也希望能知其所以然,想從四個方面來學習: 接口層設計以及C到各平臺接口轉換 Graph編譯和executor執行過程解析 Ops和OpKernel的解析 重點Kernel的實現解

原创 TensorFlow2.0的動態圖和靜態圖切換 part 2

TensorFlow2.0的動態圖和靜態圖切換 part 2 在part1中,我們學習瞭如何使用tf.function將python函數轉換成tf的靜態圖,也學習了轉換時創建一個狀態(tf.Variable)可能出現的問題以及解決

原创 java.library.path和LD_LIBRARY_PATH的介紹與區別

背景 近期要將算法部署到一個機羣的虛擬主機(Debian 9.1 gcc 6.3.0)上,採用的是Java + JNI + shared library的方式來完成底層算法能力的部署。 其中需要用到各種第三方庫,有從源碼編譯的,也

原创 從0開始使用tensorflow的c++庫進行模型推斷

文章目錄背景主要內容1.編譯TF c++的庫2.加載圖,構造Session3.構建輸入tensor4.執行Session5.獲取輸出主要問題1.系統版本導致的運行時c++庫報錯2.獲取輸出tensor時數據時報錯總結參考 背景 之

原创 TensorFlow 源碼閱讀[1] OpKernel的註冊

OpKernel介紹 在TF的架構中,OpKernel是Ops和硬件的中間層,用來抽象統一各個硬件平臺上的Kernel類和接口。 註冊過程 我們首先大致列出OpKernel註冊的過程,後面再詳細分析,我們按照調用順序,從上層往下

原创 OpenCV Mat相關結構體詳細介紹 [0]

背景 衆所周知,Mat是OpenCV最核心的核心數據結構,沒有這個靈活高效的Mat,OpenCV也就沒有了靈魂。 作爲一個初學者,只需要會簡單用一下Mat當然就夠了,但是作爲一個有理想的程序猿,我們還是要挖掘挖掘,看看Mat裏面還