本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在笔记本实例中安装外部库和内核
亚马逊 SageMaker 笔记本实例附带多个已安装的环境。这些环境包含 Jupyter 内核和 Python 程序包,包括:scikit、Pandas、NumPy、TensorFlow 和 MXNet。当您停止和启动笔记本实例时,这些环境以及 sample-notebooks 文件夹中的所有文件均会刷新。您也可以安装自己的包含所选程序包和内核的环境。
亚马逊中不同的 Jupyter 内核 SageMaker 笔记本实例是独立的 conda 环境。有关 conda 环境的信息,请参阅管理环境
在笔记本实例的 Amazon EBS 卷上安装自定义环境和内核。这可以确保在停止和重新启动笔记本实例时,它们会持续存在,并且 SageMaker 不会更新您安装的任何外部库。要做到这一点,请使用生命周期配置,其中包含在您创建笔记本实例时运行的脚本 (on-create)以及每次重新启动笔记本实例时运行的脚本(on-start)。有关使用笔记本实例生命周期配置的更多信息,请使用生命周期配置脚本自定义笔记本实例. 有一个 GitHub 存储库,其中包含示例生命周期配置脚本SageMaker 笔记本实例生命周期 Config
上的示例https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.shon-create脚本将安装ipykernel库来创建自定义环境作为 Jupyter 内核,然后使用pip install和conda
install安装库。您可以调整脚本以创建自定义环境并安装所需的库。 SageMaker 停止并重新启动 notebook 实例时不会更新这些库,因此您可以确保自定义环境具有所需的特定版本的库。这些区域有:on-start脚本会安装您创建为 Jupyter 内核的所有自定义环境,以便它们显示在 Jupyter 的下拉列表中New菜单。
Package 安装工具
SageMaker 笔记本支持以下软件包安装工具:
Conda 安装
安装 pip
您可以使用以下方法安装软件包:
-
生命周期配置脚本。
有关示例脚本,请参阅SageMaker 笔记本实例生命周期 Config
. 有关周期配置的更多信息,请参阅使用生命周期配置脚本自定义笔记本实例. -
笔记本 — 以下命令受支持。
%conda install%pip install
-
Jupyter 终端 — 您可以直接使用 pip 和 conda 安装软件包。
在笔记本中你可以使用 system 命令语法(以! 开头的行) 例如,要安装软件包,!pip install和!conda install. 最近,iPython 中添加了新命令:%pip和%conda. 这些命令是从笔记本安装软件包的推荐方法,因为它们正确考虑了正在使用的激活环境或解释器。有关更多信息,请参阅 。添加 %pip 和 %conda 魔术函数
Conda
Conda 是一个开源程序包管理系统和环境管理系统,它可以安装软件包及其依赖项。 SageMaker 支持将 Conda 用于两个主频道之一,默认频道和 conda-FORGE 频道。有关更多信息,请参阅 。Conda 频道
由于 Conda 如何解决依赖关系图,从 conda-forge 安装软件包可能需要更长的时间(在最坏的情况下,10 分钟以上)。
深度学习 AMI 附带了许多 conda 环境和许多预安装的软件包。由于预安装的软件包的数量,很难找到一组保证兼容的软件包。你可能会看到一条警告:“环境不一致,请仔细检查套餐计划”。尽管有这个警告, SageMaker 确保所有 SageMaker 前提是环境是正确的。 SageMaker 无法保证任何用户安装的软件包都能正常运行。
Conda 有两种激活环境的方法:conda 激活/停用和源代码激活/停用。有关更多信息,请参阅 。我应该在 Linux 中使用 “conda 激活” 还是 “源代码激活”
SageMaker 支持将 Conda 环境移动到 Amazon EBS 卷上,该卷将在实例停止时保留。当环境安装到根卷时,环境不会持续存在,这是默认行为。有关示例生命周期脚本,请参阅持久性 conda-ebs
支持的 conda 操作(请参阅本主题底部的注释)
conda 在单个环境中安装软件包
conda 在所有环境中安装软件包
conda 在 R 环境中安装 R 软件包
从主 conda 存储库安装软件包
从 conda-Forge 安装软件包
-
将 Conda 安装位置更改为使用 EBS
同时支持 conda 激活和源激活
Pip
Pip 是安装和管理 Python 软件包的事实上的工具。默认情况下,Pip 会在 Python Package 索引 (PyPI) 上搜索包。与 Conda 不同,pip 没有内置的环境支持,在涉及具有本机/系统库依赖关系的软件包方面也不像 Conda 那么彻底。Pip 可以用来在 Conda 环境中安装软件包。
您可以将替代软件包存储库与 pip 一起使用,而不是 PyPI。有关示例生命周期脚本,请参阅on-start.sh
支持的点操作(请参阅本主题底部的注释)
使用 pip 在没有活动 conda 环境的情况下安装软件包(在系统范围内安装软件包)
使用 pip 在 conda 环境中安装软件包
使用 pip 在所有 conda 环境中安装软件包
-
更改 pip 安装位置以使用 EBS
使用替代存储库使用 pip 安装软件包
不支持
SageMaker 旨在支持尽可能多的软件包安装操作。但是,如果软件包是由 SageMaker 或者 DLAMI,并且您对这些软件包使用以下操作,可能会使笔记本实例不稳定:
卸载
降级
升级
我们不支持通过 yum 安装或从 CRAN 安装 R 软件包来安装软件包。
由于网络条件或配置的潜在问题,或者 Conda 或 PyPi 的可用性,我们无法保证软件包将在固定或确定性的时间内安装。
我们无法保证软件包安装会成功。尝试在具有不兼容依赖关系的环境中安装软件包可能会导致失败。在这种情况下,你应该联系库维护者,看看是否可以更新软件包依赖关系。或者,您可以尝试以允许安装的方式修改环境。但是,这种修改可能意味着删除或更新现有软件包,这意味着我们无法再保证此环境的稳定性。