Day 22 Azure machine learning: set environment- 准备一个大家都能用的环境

Azure machine learning: set environment- 准备一个大家都能用的环境

之前,试着在workspace执行print("Hello World")时,会发现整体的执行时间非常长,主要是因为 Azure 需要准备 docker image 。但事实上,我们可以事先准备好环境,後续只会在第一次执行实验时,需要建立 docker image ,之後每次执行实验,只要选择已经注册好的环境,就可以省掉建立 docker image 的步骤了,大幅节省时间。

设定环境

create_environment.py

"""
Create and register the environment
"""
import os
from azureml.core import Workspace, Environment
from azureml.core.authentication import InteractiveLoginAuthentication


def main():
    """
    Create and register the environment
    """
    interactive_auth = InteractiveLoginAuthentication(tenant_id=os.getenv("TENANT_ID"))
    work_space = Workspace.from_config(auth=interactive_auth)

    # 把需要的套件写进 requirements.txt
    environment = Environment.from_pip_requirements(
        name="train_lstm", file_path="requirements.txt"
    )
    # 设定 python 版本
    environment.python.conda_dependencies.set_python_version("3.7.7")
    # 最後注册环境,以便後续使用
    environment.register(work_space)


if __name__ == "__main__":
    main()

为了让训练模型、收集数据和最後部署服务的环境都想同,列出所有需要用到的套件。另外,为了避免本地端使用的套件版本与workspace中有所差异,可以考虑直接锁定版本。尤其是 keras 和 tensorflow ,版本有所差异,可能会让部分语法有所不同,使得在执行实验时发生各种错误。(谜之声:懒得使用最新版的代价。)
requirements.txt

numpy
scikit-learn==0.23.2
pandas
tensorflow==1.13.1
Keras==2.2.4
azureml-defaults
investpy
h5py==2.10.0

注册完之後,可以从环境的页面看到自订环境内,有刚刚注册完的环境

环境被注册之後,就可以透过以下作法取得

environment = work_space.environments["train_lstm"]

另外,也可以看到 Azure 准备好的环境

针对 Azure 准备好的策划环境(Curated Environment),可以根据环境的名称取用,例如:

from azureml.core import Workspace, Environment
from azureml.core.authentication import InteractiveLoginAuthentication

interactive_auth = InteractiveLoginAuthentication(tenant_id=os.getenv("TENANT_ID"))
work_space = Workspace.from_config(auth=interactive_auth)
env = Environment.get(workspace=work_space, name="AzureML-tensorflow-2.4-ubuntu18.04-py37-cpu-inference")

用 docker image 设定环境

也可以直接拿现成的 docker image 作为实验的环境,这样也可以事先在本地端测试,确保环境没有问题。


from azureml.core import Environment

environment = Environment("my_env")
environment.docker.enabled = True
environment.docker.base_image = "mcr.microsoft.com/azureml/intelmpi2018.3-ubuntu16.04:20210301.v1"

Azure 也有提供一些已经事先准备好的docker image,可以直接拿来设定环境。


环境准备好之後,下一篇正式开始利用 Azure machine learning 训练模型。


<<:  # Day7--物件兄弟党:类别与结构

>>:  [13th][Day14] docker port

【Day 21】- 你的爬虫还在用帐号密码进行登入? 带上 Session 吧!(实战 Selenium 自动点击 Instagram 好友贴文赞 1/2)

前情提要 前一篇带各位在 Selenium 中透过执行 JavaScript 语句达到向下卷动的效果...

Day 26 你有在吃自己的狗食吗?

你有在吃自己的狗食吗? 上一篇我们提到了,派一个人专门等在那边解决问题。这里的一个人最好不要是要同一...

Day 11 : 用於生产的机械学习 - Data Labeling 资料标注

标注资料与特徵工程是处理资料重要的步骤,目的都是为了让模型效果最佳化,标注的一致性、特徵工程到位都对...

Day 20 Hero动画

前言 通过Hero,我们可以在两个路由之间做出流畅的转场动画,Hero会在Source、Overla...

.NET Core第4天_middleware是舍麽?

中介软件为组成应用程序管线的软件,用以处理要求与回应, .net core中定义的中介则可以说是用来...