gpt4 book ai didi

amazon-web-services - 在使用自定义 docker 镜像初始化 pytorch 估计器以在 AWS Sagemaker 上进行训练时,将什么定义为入口点?

转载 作者:行者123 更新时间:2023-12-02 19:52:37 24 4
gpt4 key购买 nike

所以我创建了一个用于训练的 docker 镜像。在 dockerfile 中,我定义了一个入口点,当 docker run被执行,它将开始运行我的python代码。
据我了解,要在 aws sagemaker 上使用它,我需要在 sagemaker 的 jupyter notebook 中创建一个 pytorch 估计器。我试过这样的事情:

import sagemaker
from sagemaker.pytorch import PyTorch

sagemaker_session = sagemaker.Session()

role = sagemaker.get_execution_role()

estimator = PyTorch(entry_point='train.py',
role=role,
framework_version='1.3.1',
image_name='xxx.ecr.eu-west-1.amazonaws.com/xxx:latest',
train_instance_count=1,
train_instance_type='ml.p3.xlarge',
hyperparameters={})

estimator.fit({})


在文档中,我发现作为图像名称,我可以在 aws ecr 上指定我的 docker 图像的链接。当我尝试执行此操作时,它一直在提示
[Errno 2] No such file or directory: 'train.py'

它立即提示,所以我肯定做错了什么。我希望首先我的 docker 镜像应该运行,然后它会发现入口点不存在。

但是除此之外,为什么我需要指定一个入口点,如,如果不清楚我的培训入口只是 docker run ?

为了更好的理解。我的 docker 镜像中的入口点 python 文件如下所示:
if __name__=='__main__':
parser = argparse.ArgumentParser()

# Hyperparameters sent by the client are passed as command-line arguments to the script.
parser.add_argument('--epochs', type=int, default=5)
parser.add_argument('--batch_size', type=int, default=16)
parser.add_argument('--learning_rate', type=float, default=0.0001)

# Data and output directories
parser.add_argument('--output_data_dir', type=str, default=os.environ['OUTPUT_DATA_DIR'])
parser.add_argument('--train_data_path', type=str, default=os.environ['CHANNEL_TRAIN'])
parser.add_argument('--valid_data_path', type=str, default=os.environ['CHANNEL_VALID'])

# Start training
...

稍后我想指定超参数和数据 channel 。但现在我根本不明白该把什么作为入口点。在文档中,它说入口点是必需的,它应该是入口点的本地/全局路径......

最佳答案

如果您真的想使用完全独立的自己构建 docker 镜像,您应该创建一个 Amazon Sagemaker 算法(这是 Sagemaker 菜单中的选项之一)。在这里,您必须指定指向您在亚马逊 ECR 上的 docker 镜像的链接以及输入参数和数据 channel 等。选择此选项时,您应该 不是 使用 PyTorch 估算器,但 Algoritm estimater .这样您确实不必指定入口点,因为它在训练时简单地运行 docker,并且可以在您的 docker 文件中定义默认入口点。

当您拥有自己的模型代码时,可以使用 Pytorch 估算器,但您希望在现成的 Sagemaker PyTorch docker 镜像中运行此代码。这就是为什么您必须例如指定 PyTorch 框架版本的原因。在这种情况下,默认情况下入口点文件应放置在存储 jupyter 笔记本的位置旁边(只需通过单击上传按钮上传文件)。 PyTorch 估计器继承了 framework estimator 的所有选项。 where options 可以找到放置入口点和模型的位置,例如 source_dir。

关于amazon-web-services - 在使用自定义 docker 镜像初始化 pytorch 估计器以在 AWS Sagemaker 上进行训练时,将什么定义为入口点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com