samples/foreach/batch_inferencing/batch_inferencing.R

# Copyright(c) Microsoft Corporation.
# Licensed under the MIT license.

library(azuremlsdk)
library(foreach)

# needed to load register_do_azureml_parallel() method.
# this won't be required when register_do_azureml_parallel() method is public.
devtools::load_all()

ws <- load_workspace_from_config()

# create AmlCompute cluster
cluster_name <- "sample-cluster"
vm_size <- "STANDARD_D2_V2"
compute_target <- create_aml_compute(workspace = ws,
                                     cluster_name = cluster_name,
                                     vm_size = vm_size,
                                     max_nodes = 3L)
  
wait_for_provisioning_completion(compute_target, show_output = TRUE)

# call this method to register foreach backend with Workspace and AmlCompute cluster on which
# parallel job would run.
register_do_azureml_parallel(ws, compute_target)

model <- readRDS("model.rds")

data <- read.csv("iris.csv")
nRows <- nrow(data)

result <- foreach(i = 1:nRows,
                  .packages = "jsonlite",
                  node_count = 3L,
                  process_count_per_node = 2L,
                  experiment_name = "iris_inferencing",
                  job_timeout = 3600) %dopar% {

                 prediction <- predict(model, data[i, ])
                 result <- as.character(prediction)
                 toJSON(result)
}

# Delete cluster
delete_compute(compute_target)
Azure/azureml-sdk-for-r documentation built on Sept. 21, 2022, 5:45 a.m.