Leo Yeh's Blog

SAS Viya (137)

教學目標

初步了解如何透過 sasctl 函式庫在容器中訓練專案中的所有模型之基本概念。

重點概念

首先當我們在 SAS Model Manager 中建立專案之後,並且在專案中新增許多模型,此時在許多模型中有有許多 Python 相關程式碼檔案,這時我們能夠在 Jupyter 筆記本中或 Docker 容器中執行 Python 程式碼檔案,像是進行模型訓練。

載入必要函式庫

1
2
from sasctl import Session
from sasctl.services import files, model_repository

接著我們會先載入必要的 sasctl 主要用於取得專案和模型內容,透過 sasctl 函式庫我們將不需要撰寫 REST API 就能夠存取 SAS Model Manager 中的 Python 程式碼。

設定相關參數值

1
2
3
4
5
server_url = '<SAS Viya URL>'
username = '<SAS Viya Username>'
password = '<SAS Viya Password>'
project_name = '<Project Name>'
trainfile_name = '<Python Train File Name>'

再來我們會根據不同的環境和需求,會先設定相關參數值,其中包括 SAS Viya 伺服器網址,使用者帳號、使用者密碼、專案名稱和模型訓練程>式碼檔案名稱。

執行訓練模型的 Python 程式碼

1
2
3
4
5
6
7
8
9
10
11
12
with Session(server_url,username,password, verify_ssl=False):
model_lists = model_repository.list_models()
for item in model_lists:
if 'projectName' in item and item['projectName'] == projectName:
model = model_repository.get_model(item['id'])
model_contents = model_repository.get_model_contents(model)
for item in model_contents:
if 'name' in item and item['name'] == trainfile_name:
file_id = item['fileUri'].replace('/files/files/','')
trainpy_code = files.get_file_content(file_id)
print(trainpy_code)
exec(trainpy_code,globals())

最後我們僅需要執行以下 Python 程式碼就能夠從特定專案中取得所有模型的模型訓練程式碼檔案內容,更進一步在客製化的 Python 容器中訓練模型,更重要的是支援 Tensorflow、PyTorch、MXNet、PySpark… 等目前主流的機器學習模型框架。

相關資源

⬅️ Go back