Как я могу использовать список файлов в качестве обучающего набора на Sagemaker с Tensorflow? - PullRequest
0 голосов
/ 08 октября 2019

У меня есть несколько миллионов изображений в папке обучения, и я хочу указать подмножество их для обучения - способ сделать это, по-видимому, с помощью файла манифеста, как описано здесь.

https://docs.aws.amazon.com/sagemaker/latest/dg/augmented-manifest.html

Но это, похоже, ориентировано на помеченные данные. Как я могу начать учебное задание Sagemaker, используя Sensmaker Tensorflow estimator.fit со списком файлов вместо всего каталога в качестве ввода?

1 Ответ

0 голосов
/ 09 октября 2019

Вы можете использовать параметр канала типа ввода следующим образом:

hyperparameters = {'save_checkpoints_secs':None,
                   'save_checkpoints_steps':1000}

tf_estimator = TensorFlow(entry_point='./my-training-file', role=role,
                          training_steps=5100, evaluation_steps=100,
                          train_instance_count=1, train_instance_type='ml.p3.2xlarge',
                          input_mode = 'Pipe',
                          train_volume_size=300, output_path = 's3://sagemaker-pocs/test-carlsoa/kepler/model',
                          framework_version = '1.12.0', hyperparameters=hyperparameters, checkpoint_path = None)

И создать канал файла манифеста в качестве ввода:

train_data = sagemaker.session.s3_input('s3://sagemaker-pocs/test-carlsoa/manifest.json',
                                        distribution='FullyReplicated',
                                        content_type='image/jpeg',
                                        s3_data_type='ManifestFile',
                                        attribute_names=['source-ref']) 
                                        #attribute_names=['source-ref', 'annotations']) 
data_channels = {'train': train_data}

Обратите внимание, что вы можете использовать ManifestFile или AugmentedManifestFileв зависимости от того, есть ли у вас дополнительные данные или метки для предоставления. Теперь вы можете использовать data_channels в качестве входных данных для оценки tf:

tf_estimator.fit(inputs=data_channels, logs=True)

...