当数据驻留在 s3 上的多个文件中时,如何以脚本模式在 sagemaker 上训练 tensorflow?
How to train tensorflow on sagemaker in script mode when the data resides in multiple files on s3?
每个训练实例都有一个 .npy
文件。所有这些文件都可以在 S3 的 train_data
文件夹中找到。我想在这些训练实例上训练一个张量流模型。为此,我希望为每个可以从 s3 访问文件并在其上训练模型的训练作业启动单独的 aws 训练实例。执行此操作需要对训练脚本进行哪些更改?
我在训练脚本中有以下配置:
parser.add_argument('--gpu-count', type=int, default=os.environ['SM_NUM_GPUS'])
parser.add_argument('--model-dir', type=str, default=os.environ['SM_MODEL_DIR'])
parser.add_argument('--train_channel', type=str, default=os.environ['SM_CHANNELS'])
我在 jupyter 实例中创建了训练估计器:
tf_estimator = TensorFlow(entry_point = 'my_model.py',
role = role,
train_instance_count = 1,
train_instance_type = 'local_gpu',
framework_version = '1.15.2',
py_version = 'py3',
hyperparameters = {'epochs': 1})
我将估算器的拟合函数称为:
tf_estimator.fit({'train_channel':'s3://sagemaker-ml/train_data/'})
S3 上的 train_data
文件夹包含训练实例的 .npy
文件。
但是当我调用 fit 函数时,出现错误:
FileNotFoundError: [Errno 2] No such file or directory: '["train_channel"]/train_data_12.npy'
不确定我在这里遗漏了什么,因为我可以在 S3 上看到上面提到的文件。
SM_CHANNELS
returns 频道名称列表。您要查找的是 SM_CHANNEL_TRAIN_CHANNEL
(“SM_CHANNEL”+ 您的频道名称),它提供了频道的文件系统位置:
parser.add_argument('--train_channel', type=str, default=os.environ['SM_CHANNEL_TRAIN_CHANNEL'])
每个训练实例都有一个 .npy
文件。所有这些文件都可以在 S3 的 train_data
文件夹中找到。我想在这些训练实例上训练一个张量流模型。为此,我希望为每个可以从 s3 访问文件并在其上训练模型的训练作业启动单独的 aws 训练实例。执行此操作需要对训练脚本进行哪些更改?
我在训练脚本中有以下配置:
parser.add_argument('--gpu-count', type=int, default=os.environ['SM_NUM_GPUS'])
parser.add_argument('--model-dir', type=str, default=os.environ['SM_MODEL_DIR'])
parser.add_argument('--train_channel', type=str, default=os.environ['SM_CHANNELS'])
我在 jupyter 实例中创建了训练估计器:
tf_estimator = TensorFlow(entry_point = 'my_model.py',
role = role,
train_instance_count = 1,
train_instance_type = 'local_gpu',
framework_version = '1.15.2',
py_version = 'py3',
hyperparameters = {'epochs': 1})
我将估算器的拟合函数称为:
tf_estimator.fit({'train_channel':'s3://sagemaker-ml/train_data/'})
S3 上的 train_data
文件夹包含训练实例的 .npy
文件。
但是当我调用 fit 函数时,出现错误:
FileNotFoundError: [Errno 2] No such file or directory: '["train_channel"]/train_data_12.npy'
不确定我在这里遗漏了什么,因为我可以在 S3 上看到上面提到的文件。
SM_CHANNELS
returns 频道名称列表。您要查找的是 SM_CHANNEL_TRAIN_CHANNEL
(“SM_CHANNEL”+ 您的频道名称),它提供了频道的文件系统位置:
parser.add_argument('--train_channel', type=str, default=os.environ['SM_CHANNEL_TRAIN_CHANNEL'])