[爆卦]矩陣相乘是什麼?優點缺點精華區懶人包

為什麼這篇矩陣相乘鄉民發文收入到精華區:因為在矩陣相乘這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者wheado (principal component QQ)看板R_Language標題[問題...


[問題類型]:
效能諮詢(我想讓R 跑更快)

[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)

[問題敘述]:

兩個矩陣相乘如果

使用apply 或

將一個矩陣拆成許多的list使用lapply

會不會比較快?

如果有一群大矩陣以及一群向量需要進行矩陣相乘,

想辦法建立成矩陣相乘是否是最快的?

[程式範例]:

http://ideone.com/OVgQOx

我試的結果好像是矩陣相乘是最快的

但是我的記憶體不夠大,不能嘗試更大的矩陣

> a <- matrix(rnorm(10000000),ncol = 1000);
> dim(a)
[1] 10000 1000
> b <- matrix(rnorm(200000), nrow = 1000);
> dim(b)
[1] 1000 200
>
> start <- proc.time();
> d1 <- a%*%b;
> end <- proc.time();
> end - start;
user system elapsed
1.85 0.00 1.84
>
> start <- proc.time();
> d2 <- apply(a,1,function(x) x%*%b)
> end <- proc.time();
> end - start;
user system elapsed
10.73 0.07 10.83
>
> start <- proc.time();
> a1 <- apply(a,1,function(x) list((x)));
> d3 <- lapply(a1, function(x) x[[1]]%*%b)
> end <- proc.time();
> end - start;
user system elapsed
9.49 0.06 9.58

[環境敘述]:

R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)



--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.166.11
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1492840049.A.A97.html
celestialgod: 直接乘用BLAS最快,BLAS的計算複雜度最低 04/22 15:43
celestialgod: 改用MRO可以有比較快的BLAS庫 04/22 15:44
wheado: BLAS是什麼意思?MRO指的是Microsoft R Open嗎? 04/22 16:26
celestialgod: BLAS GOOGLE WIKI有寫 04/22 16:36
celestialgod: MRO是Microsoft R Open沒錯 04/22 16:36

你可能也想看看

搜尋相關網站