我正在使用AWS Sagemaker进行模型培训和部署,这是模型培训的示例示例
from sagemaker.estimator import Estimator
hyperparameters = {'train-steps': 10}
instance_type = 'ml.m4.xlarge'
estimator = Estimator(role=role,
train_instance_count=1,
train_instance_type=instance_type,
image_name=ecr_image,
hyperparameters=hyperparameters)
estimator.fit(data_location)
这里提到的docker图像是一个tensorflow系统。在
假设训练模型需要1000秒,现在我将实例计数增加到5,然后训练时间将增加5倍,即5000秒。根据我的理解,培训工作将分配到5台机器,因此理想情况下,每台机器需要200秒,但似乎它在每台机器上分别进行培训。有人能告诉我它在分布式系统上的工作情况吗?还是用Tensorflow。在
我试图在这个文档中找到答案https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf,但是这里似乎没有提到在分布式机器上工作的方法。在
您在脚本中使用TensorFlow estimator APIs?如果是的话,我认为您应该按照in the documentation here所述将其包装在
sagemaker.tensorflow.TensorFlow
类中来运行脚本。如果以这种方式运行培训,那么实例之间的并行化和通信应该是开箱即用的。在但请注意,当增加实例数时,缩放将不是线性的。实例之间的通信需要时间,而且脚本中可能存在不可并行化的瓶颈,例如将数据加载到内存中。在
相关问题 更多 >
编程相关推荐