原创 TensorRT INT8量化原理以及如何編寫校準器類進行校準

在上一篇博客中介紹了從Pytorch模型到ONNX中間格式文件再到TensorRT推理引擎的整個過程,其中在進行INT8格式的轉換時,需要額外的工作來做,這篇博客就針對INT8轉換的具體過程及如何準備校準集、編寫校準器進行詳細介紹。 同時

原创 數據結構與算法(二):Python 單向鏈表及其排序

鏈表是一種離散存儲、可在O(1)的時間內插入但卻在O(n)的時間內查找的數據結構。 今天以單向鏈表進行鏈表這種數據結構的學習,使用Python定義鏈表類,並使用O(1)的空間複雜度進行排序。   一、單向鏈表的結構 一個單向鏈表,包hea

原创 數據結構與算法(八):順序隊列、棧式隊列

和棧一樣,隊列也是一種操作受限的線性表,其操作滿足“先進先出”規則。  今天使用Python分別實現順序隊列、棧式隊列。 一、順序鏈表 規則: 使用數組/列表存儲,包括頭尾指針; 入隊時尾部指針後移,出隊時頭部指針後移; 尾部指針到達

原创 數據結構與算法(三):Python實現雙向鏈表並遍歷

區別於單向鏈表,雙向鏈表中的節點(node)不僅有指向下一個node的指針,也具有指向上一個node的指針。 因此,在進行添加、刪除node時就需要同時更改其前向、後向指針。 使用python實現雙向鏈表,代碼如下: class BiN

原创 求整數的近似平方根(牛頓迭代法)

曾經面試遇到過一道編程題: 給出一個整數,求其近似平方根。 當時沒有想到更好的方法,就暴力進行了破解,這當然不會留下好的印象。其實,這道題使用牛頓迭代法可以十分高效的解決。 一、什麼是牛頓迭代法 假設有函數:,要想求出其根,則可以:

原创 數據結構與算法(一):時間複雜度與空間複雜度

寫在前面: 該系列博客,是本人系統學習數據結構以及算法的筆記類博客,用於記錄一些知識點以及自己所實現的代碼,以作備忘,歡迎批評交流。 下面開始正文,介紹一下數據結構及算法的入門定義。 目錄 1. 什麼是數據結構、算法 2. 複雜度分析

原创 Pytorch轉ONNX轉TensorRT加速推理過程

我們訓練好深度學習模型後,這時其仍然需在特定的深度學習框架下運行,往往不能進行高性能推理。 NVIDIA提供了一套高效推理的框架——TensorRT,可將已訓練好的模型轉爲TensorRT引擎格式,然後進行高效推理。 對於Pytorch

原创 數據結構與算法(十四):二分查找問題之變形

二分查找問題的簡單形式是:直接查找元素值等於指定值的元素。 然而,實際應用中,會有各種各樣的變形問題: 存在重複元素值,查找第一個值等於指定值的元素; 存在重複元素值,查找最後一個值等於指定值的元素; 查找第一個大於等於指定值的元素;

原创 pip 安裝擴展包時拒絕訪問錯誤“PermissionError【WinError 5】”解決方案

在Python環境下,使用pip工具安裝某些包時,有時候會自動更新某些依賴包。這個時候,有時會報如下的錯:  我們可以發現,是在處理tornado這個包時,出了問題,錯誤是權限錯誤。 猜想是由於文件訪問出了問題,於是,進入該包所在路徑,

原创 Python中使用logging模塊記錄日誌

在部署工程化的項目時,我們常需要記錄日誌。logging模塊提供了強大的日誌記錄功能,可用於記錄程序報錯的信息、自定義的運行記錄,還可以在出現指定錯誤時發郵件報警。 經過簡單試用,現總結一下基礎用法,後續深入使用後,會繼續完善此博客。

原创 圖解激活函數【附代碼】

1、關於激活函數 激活函數,在神經網絡中扮演着十分關鍵的角色。它將上一層神經元輸出的加權求和結果輸入到一個非線性的函數中,使之進行非線性映射,進而大大提升了神經網絡的容限能力,使之可以在一定條件下逼近任意函數。 如果沒有激活函數或者激活

原创 如何利用谷歌雲計算資源(Google Colab)訓練自己的神經網絡以及模型的保存、移植應用

深度學習的興起,給我們帶來了新的努力和嘗試的方向,同時也帶來了對機器計算能力的更高要求。GPU加速是當前提高計算速度的關鍵,但對大多數人來說,買個好的顯卡代價過於昂貴。假如你不是土豪,假如你使用着計算資源極其有限的計算機,假如你想訓練一個

原创 數據結構與算法(十三):二分查找

二分查找適用條件: 數據是有序的; 數據是連續、順序存儲的,也即:存儲形式爲數組; 更適合於大規模靜態數據(無頻繁增刪); 二分查找基本思想: 針對數組A,待查找元素value,設定low、high分別爲數組頭尾下標; 1. 令mid =

原创 數據結構與算法(十二):計數排序

計數排序基本概念: 計數排序是桶排序的一個特例,即:桶的大小爲1。這樣一來,分桶之後,每個桶內部就不需要排序了,只需將不同桶的數據合併到一起,組成排序好的序列。 計數排序對數據的要求十分嚴格: 計數排序適用於數據範圍不大且小於元素個數

原创 數據結構與算法(十一):歸併排序、快速排序

算法原理及其比較 算法基本思想: 歸併和快排都是屬於分治思想,其不同之處在於: 歸併排序首先將原始序列不斷二分,最後從葉子結點處,自底向上進行歸併;而快速排序則自頂向下地進行,每次隨機選擇一個元素,將序列分爲小於等於和大於該元素的兩個序列