關於CS231N-Assignment1-KNN中no-loop矩陣乘法程式碼的講解
在使用無迴圈的演算法進行計算距離的效率是很高的
可以看到No loop演算法使用的時間遠遠小於之前兩種演算法
Two loop version took 56.785069 seconds
One loop version took 136.449761 seconds
No loop version took 0.591535 seconds #很快!
實現程式碼主要為以下這一段:
其中X為500×3072的矩陣(測試矩陣)
X_train為5000×3072的矩陣(訓練矩陣)
dists 為500×5000的矩陣(距離矩陣)
題中的目的就是將X中每一行的畫素數值與X_train中每一行的畫素數值(3072個)進行距離運算得出歐氏距離(L2)再儲存到dists中
核心公式
test_sum = np.sum(np.square(X), axis=1) # num_test x 1
train_sum = np.sum(np.square(self.X_train), axis=1) # num_train x 1
inner_product = np.dot(X, self.X_train.T) # num_test x num_train
dists = np.sqrt(-2 * inner_product + test_sum.reshape(-1, 1) + train_sum) # broadcast
公式講解:
假設現在有三個矩陣:A(X)、B(X_train)、C(dists )
將維數縮小以方便操作,稍微進行推導,就可以得出上面的公式了
推導過程如下:
相關文章
- 矩陣乘法矩陣
- 理解矩陣乘法矩陣
- MKL庫矩陣乘法矩陣
- cuda 加速矩陣乘法矩陣
- torch中向量、矩陣乘法大總結矩陣
- MPI矩陣向量乘法程式碼《並行程式設計導論》矩陣並行行程程式設計
- 【矩陣乘法】Matrix Power Series矩陣
- #100. 矩陣乘法矩陣
- 【矩陣乘法】【快速冪】遞推矩陣
- OpenCL之矩陣乘法實現矩陣
- POJ 3613 Cow Relays 矩陣乘法Floyd+矩陣快速冪矩陣
- [轉]如何理解矩陣乘法的規則矩陣
- CUDA 矩陣乘法終極優化指南矩陣優化
- 斐波那契數列Ⅳ【矩陣乘法】矩陣
- bzoj3240: [Noi2013]矩陣遊戲(矩陣乘法+快速冪)矩陣遊戲
- 矩陣乘法的運算量計算(華為OJ)矩陣
- 脈動陣列在二維矩陣乘法及卷積運算中的應用陣列矩陣卷積
- 【矩陣求導】關於點乘 (哈達瑪積)的矩陣求導矩陣求導點乘
- 怎樣用python計算矩陣乘法?Python矩陣
- 計算機演算法:Strassen矩陣乘法計算機演算法矩陣
- 【線性變換/矩陣及乘法】- 圖解線性代數 03矩陣圖解
- 04 矩陣乘法與線性變換複合矩陣
- BASIC-17 / Tsinsen 1041 矩陣乘法(java)矩陣Java
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- bzoj4547: Hdu5171 小奇的集合(矩陣乘法)矩陣
- 關聯矩陣矩陣
- 伴隨矩陣和逆矩陣的關係證明矩陣
- 線性代數 - 矩陣形式下的最小二乘法矩陣
- 矩陣相乘優化演算法實現講解矩陣優化演算法
- 基於概率的矩陣分解原理詳解(PMF)矩陣
- 矩陣分解(MF)方法及程式碼矩陣
- 詳細講解矩陣求逆的快速演算法(轉)矩陣演算法
- 矩陣的乘法運算與css的3d變換(transform)矩陣CSS3DORM
- SQL中關於NULL的程式碼SQLNull
- 矩陣中的路徑矩陣
- 想學人工智慧,先從理解矩陣乘法開始人工智慧矩陣
- UOJ 241. 【UR #16】破壞發射臺 [矩陣乘法]矩陣
- 關於C99可變引數巨集的例項程式碼講解