訓練
認證
Microsoft Certified: Azure Data Scientist Associate - Certifications
使用 Python、Azure Machine Learning 和 MLflow 來管理資料擷取和準備、訓練及部署模型,以及監視機器學習解決方案。
適用於:Azure CLI ml 延伸模組 v2 (目前)
Python SDK azure-ai-ml v2 (目前)
本文說明如何在 Azure Machine Learning Studio 中的計算執行個體上使用 R,以在 Jupyter Notebook 中執行 R 核心。
熱門的 RStudio IDE 也可運作。 您可以在計算執行個體的自訂容器中安裝 RStudio 或 Posit Workbench。 不過,在讀取和寫入 Azure Machine Learning 工作區方面有限制。
重要
本文中顯示的程式碼適用於 Azure Machine Learning 計算執行個體。 計算執行個體具有執行成功程式碼所需的環境和設定檔。
您將在計算執行個體上使用 Azure Machine Learning 工作區中的筆記本。
如果工作區尚未開啟,請開啟工作區
在左側導覽中,選取 [Notebooks]
建立名為 RunR.ipynb 的新筆記本
提示
如果您不確定如何在 Studio 中建立和使用筆記本,請檢閱在工作區中執行 Jupyter 筆記本
選取筆記本。
在筆記本工具列上,確定您的計算執行個體正在執行中。 如果沒有,請立即啟動。
在筆記本工具列上,將核心切換至 R。
您的筆記本現在已準備好執行 R 命令。
您可以將檔案上傳至工作區檔案儲存體資源,然後在 R 中存取這些檔案。不過,對於儲存在 Azure 資料資產中的檔案,或來自資料存放區的資料,您必須安裝一些套件。
本節說明如何使用 Python 和 reticulate
套件,從互動式工作階段將資料資產和資料存放區載入 R。 您可以使用 azureml-fsspec
Python 套件和 reticulate
R 套件,將表格式資料讀取為 Pandas DataFrames。 本節也包含將資料資產和資料存放區讀取到 R data.frame
的範例。
若要安裝這些套件:
在計算執行個體上建立名為 setup.sh 的新檔案。
將此程式碼複製到檔案:
#!/bin/bash
set -e
# Installs azureml-fsspec in default conda environment
# Does not need to run as sudo
eval "$(conda shell.bash hook)"
conda activate azureml_py310_sdkv2
pip install azureml-fsspec
conda deactivate
# Checks that version 1.26 of reticulate is installed (needs to be done as sudo)
sudo -u azureuser -i <<'EOF'
R -e "if (packageVersion('reticulate') >= 1.26) message('Version OK') else install.packages('reticulate')"
EOF
選取 [儲存並在終端機中執行指令碼] 以執行指令碼
安裝指令碼會處理下列步驟:
pip
會在計算執行個體的預設 conda 環境中安裝 azureml-fsspec
reticulate
套件 (版本必須是 1.26 或更新版本)針對儲存在 Azure Machine Learning 中建立之資料資產的資料,請使用下列步驟,將該表格式檔案讀入 Pandas DataFrame 或 R data.frame
:
注意
讀取具有 reticulate
的檔案只適用於表格式資料。
請確定您有正確的 reticulate
版本。 對於低於 1.26 的版本,請嘗試使用較新的計算執行個體。
packageVersion("reticulate")
載入 reticulate
並設定已安裝 azureml-fsspec
的 conda 環境
library(reticulate)
use_condaenv("azureml_py310_sdkv2")
print("Environment is set")
尋找資料檔的 URI 路徑。
首先,取得工作區的控制代碼
py_code <- "from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
credential = DefaultAzureCredential()
ml_client = MLClient.from_config(credential=credential)"
py_run_string(py_code)
print("ml_client is configured")
使用此程式碼來擷取資產。 請務必將 <MY_NAME>
和 <MY_VERSION>
取代為您資料資產的名稱和數量。
提示
在 Studio 中,選取左側導覽 [資料],以尋找資料資產的名稱和版本號碼。
# Replace <MY_NAME> and <MY_VERSION> with your values
py_code <- "my_name = '<MY_NAME>'
my_version = '<MY_VERSION>'
data_asset = ml_client.data.get(name=my_name, version=my_version)
data_uri = data_asset.path"
若要擷取 URI,請執行程式碼。
py_run_string(py_code)
print(paste("URI path is", py$data_uri))
使用 Pandas 讀取函式將檔案讀取至 R 環境。
pd <- import("pandas")
cc <- pd$read_csv(py$data_uri)
head(cc)
您也可以使用資料存放區 URI 來存取已註冊資料存放區上的不同檔案,並將這些資源讀入 R data.frame
。
在此格式中,使用您自己的值建立資料存放區 URI:
subscription <- '<subscription_id>'
resource_group <- '<resource_group>'
workspace <- '<workspace>'
datastore_name <- '<datastore>'
path_on_datastore <- '<path>'
uri <- paste0("azureml://subscriptions/", subscription, "/resourcegroups/", resource_group, "/workspaces/", workspace, "/datastores/", datastore_name, "/paths/", path_on_datastore)
提示
如果您知道檔案所在的資料存放區,您可以複製並貼上 Studio UI 中的資料存放區 URI,而不是記住資料存放區 URI 格式:
<path>
變數。
使用先前提及的 URI 建立檔案存放區物件:
fs <- azureml.fsspec$AzureMachineLearningFileSystem(uri, sep = "")
data.frame
:df <- with(fs$open("<path>)", "r") %as% f, {
x <- as.character(f$read(), encoding = "utf-8")
read.csv(textConnection(x), header = TRUE, sep = ",", stringsAsFactors = FALSE)
})
print(df)
計算執行個體有許多預安裝 R 套件。
若要安裝其他套件,您必須明確陳述位置和相依性。
提示
當您建立或使用不同的計算執行個體時,您必須重新安裝任何已安裝的套件。
例如,若要安裝 tsibble
套件:
install.packages("tsibble",
dependencies = TRUE,
lib = "/home/azureuser")
注意
如果您在 Jupyter Notebook 中執行的 R 工作階段內安裝套件,則需要 dependencies = TRUE
。 否則,相依套件將不會自動安裝。 也需要程式庫位置,才能在正確的計算執行個體位置中安裝。
將 /home/azureuser
新增至 R 程式庫路徑。
.libPaths("/home/azureuser")
提示
您必須更新每個互動式 R 指令碼中的 .libPaths
,才能存取使用者安裝的程式庫。 將此程式碼新增至每個互動式 R 指令碼或筆記本的頂端。
更新 libPath 之後,請如往常載入程式庫。
library('tsibble')
除了稍早所述的問題之外,請像您在任何其他環境中一樣使用 R,包括本地工作站。 在您的筆記本或指令碼中,您可以讀取和寫入儲存筆記本/指令碼的路徑。
注意
訓練
認證
Microsoft Certified: Azure Data Scientist Associate - Certifications
使用 Python、Azure Machine Learning 和 MLflow 來管理資料擷取和準備、訓練及部署模型,以及監視機器學習解決方案。
文件
將 R 工作負載帶入 Azure Machine Learning - Azure Machine Learning
了解如何將 R 工作負載帶入 Azure Machine Learning
調整 R 指令碼以在生產環境中執行 - Azure Machine Learning
了解如何修改現有的 R 指令碼,以在 Azure Machine Learning 上的生產環境中執行
定型 R 模型 - Azure Machine Learning
瞭解如何使用 R 將機器學習模型定型,以在 Azure Machine Learning 中使用。