我想在AWS SageMaker上运行一个RL培训任务(脚本如下)。但由于项目很复杂,我希望在提交到付费示例之前使用SageMaker本地模式(在我的M1 MacBook Pro中)进行一次测试运行。然而,即使是一个简单的培训任务,我也很难使这个本地运行成功。
现在,我确实在运行本地培训作业时使用了Tensorflow-metal和Tensorflow-macos(没有SageMaker)。我没有看到任何地方可以在framework_version
中指定这一点,也没有看到我确定"local_gpu"
是带GPU的普通Linux机器的正确参数,完全匹配Apple Silicon(M1 Pro)。
我找遍了所有的地方,但我找不到一个案例,这是解决。(很奇怪,我做错了什么?如果是这样,请纠正我。)如果没有,并有任何人谁知道一个配置,一个码头图像或一个例子正确地做了M1专业请分享。
我尝试运行以下代码。登录后挂起。(如果您尝试运行该代码,请尝试使用任何简单的培训脚本作为entry_point,并确保使用awscli和以下命令以与您所在地区匹配的类似代码登录。aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 763104351884.dkr.ecr.us-east-1.amazonaws.com
##main.py
import boto3
import sagemaker
import os
import keras
import numpy as np
from keras.datasets import fashion_mnist
from sagemaker.tensorflow import TensorFlow
sess = sagemaker.Session()
#role = <'arn:aws:iam::0000000000000:role/CFN-SM-IM-Lambda-Catalog-sk-SageMakerExecutionRole-BlaBlaBla'> #KINDLY ADD YOUR ROLE HERE
(x_train, y_train), (x_val, y_val) = fashion_mnist.load_data()
os.makedirs("./data", exist_ok = True)
np.savez('./data/training', image=x_train, label=y_train)
np.savez('./data/validation', image=x_val, label=y_val)
# Train on local data. S3 URIs would work too.
training_input_path = 'file://data/training.npz'
validation_input_path = 'file://data/validation.npz'
# Store model locally. A S3 URI would work too.
output_path = 'file:///tmp/model/'
tf_estimator = TensorFlow(entry_point='mnist_keras_tf.py',
role=role,
instance_count=1,
instance_type='local_gpu', # Train on the local CPU ('local_gpu' if it has a GPU)
framework_version='2.1.0',
py_version='py3',
hyperparameters={'epochs': 1},
output_path=output_path
)
tf_estimator.fit({'training': training_input_path, 'validation': validation_input_path})
1条答案
按热度按时间ix0qys7i1#
prebuilt SageMaker Docker Images for Deep Learning还没有基于Arm的支持。您可以查看可用的深度学习容器图片here。
解决方案是构建您自己的Docker映像并将其与SageMaker一起使用。
这是使用
miniconda
安装TensorFlow依赖项的Dockerfile
示例:这就是
ml-dependencies.yml
:下面是使用SageMaker脚本模式运行培训的方法:
您可以在Amazon SageMaker Local Mode Examples GitHub存储库here中找到完整的工作示例代码。