如何确保 AWS SageMaker 无服务器计算中的软件包版本一致性?

How to ensure software package version consistency in AWS SageMaker serverless compute?

我正在学习 AWS SageMaker,它应该是机器学习的无服务器计算环境。在这种无服务器计算环境下,谁来保证软件包的一致性和版本更新?

比如我运行 SageMaker自带的demo程序,deepar_synthetic。在第二个单元格中,它执行以下命令:!conda install -y s3fs

但是,我收到以下警告消息:

解决环境:完成 ==> 警告:存在更新版本的 conda。 <== 当前版本:4.4.10 最新版本:4.5.4 请通过 运行 更新 conda $ conda update -n 基础 conda

既然是serverless compute,还需要自己更新软件包吗?

另一个例子如下。我写了几行简单的代码来找出 Jupyter notebook 中的包版本:

导入平台

将 tensorflow 导入为 tf

打印(platform.python_version())

打印(tf.版本)

但是,我收到以下警告消息:

/home/ec2-user/anaconda3/envs/tensorflow_p36/lib/python3.6/importlib/_bootstrap.py:219:RuntimeWarning:模块 'tensorflow.python.framework.fast_tensor_util' 的编译时版本 3.5 与运行时版本 3.6 不匹配 return f(*args, **kwds) /home/ec2-user/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/h5py/init.py:36:FutureWarning:将 issubdtype 的第二个参数从 float 转换为 np.floating 已弃用。将来,它将被视为np.float64 == np.dtype(float).type。 从 ._conv 导入 register_converters 为 _register_converters

打印仍然有效,我得到的结果如下所示:

3.6.4 1.4.0

我想知道我必须做什么才能使程序包保持一致,这样我就不会收到警告消息。谢谢

如今,SageMaker Notebook 实例是托管的 EC2 实例,但用户仍然可以以 root 身份完全控制 Notebook 实例。您具有通过 Jupyter 终端安装缺少的库的全部能力。

要访问终端,请打开您的笔记本实例到主页,然后单击右上角的下拉菜单:“新建”->“终端”。 注意:默认情况下,conda 安装到根环境。

以下是您可以按照 https://conda.io/docs/user-guide/tasks/manage-environments.html 了解如何在特定 conda 环境中安装库的说明。

一般来说,您需要以下命令,

conda env list 

其中列出了您所有的 conda 环境

source activate <conda environment name> 

例如来源激活 python3

conda list | grep <package> 

例如康达清单 | grep numpy 列出当前的软件包版本

pip install numpy 

conda install numpy 

注意:SageMaker 团队会定期将新版本的库发布到笔记本实例上。要获取新库,您可以停止并启动笔记本实例。

如果您对默认情况下希望看到的库有建议,可以在 https://forums.aws.amazon.com/forum.jspa?forumID=285 . Alternatively, you can bootstrap your Notebook Instances with Lifecycle Configurations to install custom libraries. More details here: https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateNotebookInstanceLifecycleConfig.html

下创建一个论坛 post