原创 TVM(端到端的優化棧)概述

陳天奇團隊宣佈推出 TVM,在微博上表示,「我們今天發佈了 TVM,和 NNVM 一起組成深度學習到各種硬件的完整優化工具鏈,支持手機,cuda, opencl, metal, javascript 以及其它各種後端。歡迎對於深度

原创 貝葉斯線性迴歸

將均方誤差應用到線性迴歸問題中 首先我們先回顧頻率派的解決方法,即常規解法——利用最小二乘法解決問題。損失函數採用均方誤差函數。 關於模型容量問題: 在《深度學習》中專門指出,模型的容量也是一個需要用戶指定的超參數,即擬合的多項式

原创 numpy與tensorflow中的隨機函數總結

筆者感覺numpy、tensorflow中的隨機函數有些雜,用的時候總是不知道用哪一個,所以在本篇博客中對其進行一個簡單的總結。 numpy的隨機函數 我們可以利用numpy隨機(random)模塊生成我們想要的隨機序列或進行一系

原创 深度學習中學習率的更新策略(MNIST實踐)

引入 隨機梯度下降(SGD)算法是現如今使用較爲廣泛的優化算法(此處的SGD指的是小批量梯度下降)。具體執行方法是不斷迭代直到滿足停止準則,在每次的迭代中取小批量訓練集,計算損失函數對於權重參數的梯度,並以一定學習率執行權重更新。

原创 關於Batch Normalization(批標準化)的理解與代碼實現

今天看了《深度學習》中關於批標準化的小節,一開始感覺有些困惑,後來蒐集了資料後也有了自己的理解,總結如下。 概念問題 我認爲要理解批標準化首先要理解標準化概念。 那麼,什麼是標準化? 通過中心化或標準化處理,得到均值爲0,標準

原创 Tensor Comprehensions(TC)語言語法簡述

背景 Tensor Comprehensions 是一種可以構建 just in time(JIT)系統的語言,程序員可通過該語言用高級編程語言去高效的實現 GPU 等底層代碼。該項目由face book開源發佈。 我的理解是我們

原创 深度學習之手寫數字識別——用bp神經網絡實現

任務 設計一個bp神經網絡是實現對MNIST手寫數字集的識別任務。 網路結構包含一個輸入層、一個隱層和一個輸出層。 其實總共只有兩個層級結構。 包、數據集載入 我們使用tensorflow來簡化我們的操作。 import tens

原创 用tensorflow實現帶批標準化(BN)的MNIST數據集識別訓練程序

引入 爲了提高程序的可複用性,我們採用函數裏定義函數的操作(有些類似面向對象),這樣可以簡單的定義出較多的層級結構。 並且我們本次要做的是帶有BN結構的CNN程序。我們可以把BN操作看成一個放在激活函數操作之後的一個功能單元或層級

原创 機器學習算法之主成分分析——代碼實現與相關理論分析

引入 主成分分析(PCA)是一種常見的數據分析方法,通過該方法我們可以對數據進行降維操作,並且保留方差較大(信息量大)的維度。 爲了引入相關概念,我們先看一組數據: import pandas as pd import numpy

原创 CNN(卷積神經網絡)實現手寫數字識別

任務 設計一個卷積神經網絡來實現對MNIST手寫數字集的識別任務。 爲了增加模型複雜度並進一步練習tensorflow的使用方法,所以模型設計的稍微複雜一些。網路結構總共包括五個層級,包括四個隱藏單元、一個輸出單元。 層級結構如下