Я пытаюсь добавить индикатор выполнения к моему 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.»
Я не уверен, как исправить эту ошибку, пожалуйста, помогите.