У меня есть два отдельных нормализованных текстовых файла, на которых я хочу обучить свою модель BlazingText.
Я изо всех сил пытаюсь заставить это работать, и документация не помогает.
В основном мне нужночтобы выяснить, как предоставить несколько файлов или префиксов S3 в качестве параметра «входных данных» для метода sagemaker.estimator.Estimator.fit ().
Сначала я попытался:
s3_train_data1 = 's3://{}/{}'.format(bucket, prefix1)
s3_train_data2 = 's3://{}/{}'.format(bucket, prefix2)
train_data1 = sagemaker.session.s3_input(s3_train_data1, distribution='FullyReplicated', content_type='text/plain', s3_data_type='S3Prefix')
train_data2 = sagemaker.session.s3_input(s3_train_data2, distribution='FullyReplicated', content_type='text/plain', s3_data_type='S3Prefix')
bt_model.fit(inputs={'train1': train_data1, 'train2': train_data2}, logs=True)
это нене работает, потому что SageMaker ищет ключ специально для "train" в параметре входных данных.
Итак, я попытался:
bt_model.fit(inputs={'train': train_data1, 'train': train_data2}, logs=True)
Это обучает модель только на втором наборе данныхи полностью игнорирует первый.
Теперь, наконец, я попытался использовать файл манифеста, используя документацию здесь: https://docs.aws.amazon.com/sagemaker/latest/dg/API_S3DataSource.html
(см. формат файла манифеста в разделе "S3Uri")
документация говорит, что формат файла манифеста - это JSON, который выглядит следующим образом:
[
{"prefix": "s3://customer_bucket/some/prefix/"},
"relative/path/to/custdata-1",
"relative/path/custdata-2"
]
Ну, я не думаю, что это в первую очередь допустимый JSON, но что я знаю, я все ещедать это вry.
Когда я пытаюсь это сделать:
s3_train_data_manifest = 'https://s3.us-east-2.amazonaws.com/bucketpath/myfilename.manifest'
train_data_merged = sagemaker.session.s3_input(s3_train_data_manifest, distribution='FullyReplicated', content_type='text/plain', s3_data_type='ManifestFile')
data_channel_merged = {'train': train_data_merged}
bt_model.fit(inputs=data_channel_merged, logs=True)
я получаю сообщение об ошибке:
ValueError: Error training blazingtext-2018-10-17-XX-XX-XX-XXX: Failed Reason: ClientError: Data download failed:Unable to parse manifest at s3://mybucketpath/myfilename.manifest - invalid format
Я попытался заменить квадратные скобки в моем файле манифеста фигурными скобками...но все же я чувствую, что в формате файла JSON отсутствует то, что документация не может правильно описать?