R на GPU в облаке - PullRequest
       10

R на GPU в облаке

0 голосов
/ 25 мая 2018

Мне приходится ежедневно выполнять регрессию для набора данных, который состоит из 6 миллионов строк и более 20 столбцов.Я хотел бы ускорить вычисления и переместить их в облако. tenorflow.rstudio в настоящее время лучший вариант для моих целей?

1 Ответ

0 голосов
/ 25 мая 2018

Ну:

R> nr <- 6e6 
R> nc <- 20   
R> M <- matrix(rnorm(nr*nc), nr, nc)          
R> y <- runif(nr)                               
R> system.time(b1 <- lm.fit(M, y))          
   user  system elapsed                 
 18.219  10.046   3.169 
R>

И если нам нужен более изящный lm() -подобный, но быстрый подход:

R> system.time(b2 <- RcppArmadillo::fastLm(M, y))        
   user  system elapsed 
 10.028   9.248   3.733 
R>

, где мы можем легко посмотреть на результаты в обычной форме:

R> summary(b2)

Call:
fastLm.default(X = M, y = y)

Residuals:
      Min.    1st Qu.     Median    3rd Qu.       Max. 
-0.0028683  0.2496700  0.4996900  0.7498700  1.0030000 

        Estimate     StdErr t.value p.value  
 [1,]  1.138e-04  2.355e-04   0.483  0.6290  
 [2,]  3.637e-04  2.356e-04   1.543  0.1228  
 [3,]  2.602e-04  2.355e-04   1.105  0.2692  
 [4,]  6.760e-05  2.357e-04   0.287  0.7743  
 [5,]  2.440e-04  2.357e-04   1.035  0.3005  
 [6,]  1.230e-04  2.356e-04   0.522  0.6017  
 [7,] -1.239e-04  2.356e-04  -0.526  0.5990  
 [8,] -9.908e-05  2.356e-04  -0.420  0.6741  
 [9,] -1.633e-04  2.356e-04  -0.693  0.4882  
[10,] -3.994e-04  2.357e-04  -1.695  0.0901 .
[11,] -2.056e-05  2.356e-04  -0.087  0.9304  
[12,] -1.335e-04  2.356e-04  -0.567  0.5709  
[13,] -9.811e-05  2.356e-04  -0.416  0.6772  
[14,]  3.083e-04  2.356e-04   1.308  0.1907  
[15,] -9.598e-06  2.356e-04  -0.041  0.9675  
[16,]  1.781e-04  2.355e-04   0.756  0.4494  
[17,]  4.247e-05  2.355e-04   0.180  0.8569  
[18,]  1.425e-04  2.358e-04   0.604  0.5457  
[19,]  5.302e-05  2.356e-04   0.225  0.8219  
[20,]  1.735e-04  2.357e-04   0.736  0.4616  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.577 on 5999980 degrees of freedom
Multiple R-squared: 2.14e-06,   Adjusted R-squared: -1.19e-06
R>

Так что на самом деле проблем нет.Это заняло менее чем за четыре секунды на моей (возможно, приличной и недавней) машине дома.Почему "облако"?Почему «тензор потока»?Понимаете ли вы, что тензорный поток очень требователен и медленен , тогда как регрессия - это одиночная линейная проекция (которая происходит здесь по нескольким ядрам в полностью автоматическом режиме )?Никакого нестандартного программного обеспечения, но простые пакеты Debian / Ubuntu (с которыми я случайно связан).

Я был бы рад выступить в качестве вашего консультанта, если бы мне удалось сэкономить на AWS или Azure ... И яЯ шучу только наполовину.

...