Использование предварительно назначенного AWS URL-адреса в качестве обучающего ввода для оценки PyTorch в Sagemaker - PullRequest
0 голосов
/ 20 марта 2020

Я немного новичок в AWS и Sagemaker и надеюсь, что у кого-нибудь есть простое решение для моей проблемы. Я тренирую модель с помощью PyTorch Estimator в Sagemaker, где данные для обучения велики (около 100 ГБ). Я проверил свой код с меньшим количеством данных, которые я мог легко загрузить на S3 с диска и передать в estimator.fit(). Это мой текущий подход:

import sagemaker
from sagemaker.pytorch import PyTorch

sagemaker_session = sagemaker.Session()

role = sagemaker.get_execution_role()
source_dir = './main'
entry_point = 'entry.py'

bucket='my-bucket'
train_data_key = 'my_small_train_data.tar.gz'
val_data_key = 'my_small_val_data.tar.gz'
train_data_location = 's3://{}/{}'.format(bucket, train_data_key)
val_data_location = 's3://{}/{}'.format(bucket, val_data_key)

input_data = {'train':train_data_location,
 'val':val_data_location}

estimator = PyTorch(entry_point=entry_point,
                    source_dir=source_dir,
                    role=role,
                    framework_version='1.3.1',
                    train_instance_count=1,
                    train_volume_size = 120,
                    train_instance_type='ml.p3.2xlarge',
                    py_version='py3',
                    hyperparameters={})

estimator.fit(input_data)

Теперь я хочу обучить модель со всем набором данных, который доступен через предопределенный AWS S3 url. У меня вопрос: есть ли простой способ передать эти данные напрямую в fit(), аналогично подходу, который я использую сейчас? Я открыт и для других предложений.

Альтернативы, которые я уже попробовал:

  • Загрузка данных тренировки на мой диск и загрузка их в корзину и использование того же самого код. Это занимает непомерно много времени.

  • Позвоните fit(), не передавая обучающие данные, и загрузите их в экземпляр, используя curl / wget. Это явно не правильный путь к go, поскольку память экземпляра должна быть достаточно большой, чтобы хранить 100 ГБ обучающих данных.

...