Использование параллельного foreach для индикатора прогресса в R Shiny - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь добавить индикатор выполнения к моему ocr_data() в цикле for, но при последовательном использовании этот процесс ужасно медленный.
Я пытаюсь использовать параллель, чтобы ускорить процесс генерации моей таблицы из ocr_data(x).

Код вставляется сюда:

ui <- fluidPage(

   # Application title
   titlePanel("Test"),

   sidebarLayout(
      sidebarPanel(
        fileInput("ocr_pdf","Upload", accept = '.pdf')),
      mainPanel(
         tableOutput("ocr_plot")))
      )

server <- function(input, output) {

  output$ocr_plot <- renderTable({

  image <- input$ocr_pdf$datapath

  image2 <- pdf_convert(image, dpi = 600)

  image2 <- image_read(image2)


  x <- image2  %>%
    image_resize("2000x") 
  #  image_convert(type = 'Grayscale') %>%
   # image_trim(fuzz = 40) 
  #  image_write(format = 'png', density = '300x300') %>%

cl <- detectCores() - 4
registerDoParallel(cl)

    withProgress(message = 'Calculation in progress',
                 detail = 'This may take a while...', value = 0, {
                   foreach(i = 1:nrow(ocr_data(x)), .combine = cbind, .packages = 'shiny') %dopar% {
                     incProgress(1/nrow(ocr_data(x)))
                     Sys.sleep(0.25)
                   }
                 })


  ocr_data(x)

  stopCluster(cl)
   })
}

# Run the application 
shinyApp(ui = ui, server = server)`

Я сталкиваюсь с ошибкой,

«задача 1 не выполнена -« сессия »не является объектом ShinySession.»

Я не уверен, как исправить эту ошибку, пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...