Используя команду AWS SageMaker create-training-job: введите Error

Я пытаюсь использовать cli AWS sagemaker для запуска команды create-training-job. Вот моя команда:

aws sagemaker create-training-job \
--training-job-name $(DEPLOYMENT_NAME)-$(BUILD_ID) \
--hyper-parameters file://sagemaker/hyperparameters.json \
--algorithm-specification TrainingImage=$(IMAGE_NAME),\
TrainingInputMode="File" \
--role-arn $(ROLE) \
--input-data-config ChannelName=training,DataSource={S3DataSource={S3DataType=S3Prefix,S3Uri=$(S3_INPUT),S3DataDistributionType=FullyReplicated}},ContentType=string,CompressionType=None,RecordWrapperType=None \
--output-data-config S3OutputPath=$(S3_OUTPUT) \
--resource-config file://sagemaker/train-resource-config.json \
--stopping-condition file://sagemaker/stopping-conditions.json 

и вот ошибка:

Parameter validation failed:
Invalid type for parameter InputDataConfig[0].DataSource.S3DataSource, value: S3DataType=S3Prefix, type: <type 'unicode'>, valid types: <type 'dict'>
Invalid type for parameter InputDataConfig[1].DataSource.S3DataSource, value: S3Uri=s3://hs-machine-learning-processed-production/inbound-autotag/data, type: <type 'unicode'>, valid types: <type 'dict'>
Invalid type for parameter InputDataConfig[2].DataSource.S3DataSource, value: S3DataDistributionType=FullyReplicated, type: <type 'unicode'>, valid types: <type 'dict'>
make: *** [train] Error 255

Ошибка возникает с флагом --input-data-config. Я пытаюсь использовать сокращенный синтаксис, чтобы ввести некоторые переменные (слова с заглавной буквы). Хаалп!


person tlanigan    schedule 30.05.2018    source источник
comment
Значит, ваш формат входных данных неверен. Invalid type for parameter InputDataConfig[0].DataSource.S3DataSource, value: S3DataType=S3Prefix, type: <type 'unicode'>, valid types: <type 'dict'> В нем говорится, что допустимый тип - словарь, вы предоставляете простой текст в формате Unicode в S3Prefix.   -  person Ankita Mehta    schedule 03.09.2019


Ответы (1)


Итак, ваша входная конфигурация отформатирована неправильно. Ознакомьтесь с образцом json здесь: https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTrainingJob.html

# look at the format of input-data-config, it is a dictionary
  "InputDataConfig": [ 
      { 
         "ChannelName": "string",
         "CompressionType": "string",
         "ContentType": "string",
         "DataSource": { 
            "FileSystemDataSource": { 
               "DirectoryPath": "string",
               "FileSystemAccessMode": "string",
               "FileSystemId": "string",
               "FileSystemType": "string"
            },
            "S3DataSource": { 
               "AttributeNames": [ "string" ],
               "S3DataDistributionType": "string",
               "S3DataType": "string",
               "S3Uri": "string"
            }
         },
         "InputMode": "string",
         "RecordWrapperType": "string",
         "ShuffleConfig": { 
            "Seed": number
         }
      }
   ]
person Ankita Mehta    schedule 03.09.2019