Сбой вызова экспериментального пакетного веб-сервиса Azure ML с неверным расширением вывода - PullRequest
0 голосов
/ 07 мая 2018

У меня есть веб-задание Azure, которое вызывает учебный эксперимент по ML через HttpRequests, используя код, сгенерированный в веб-портале ML:

var request = new BatchExecutionRequest()
            {
                Inputs = new Dictionary<string, AzureBlobDataReference>() {
                    {
                        "input1",
                        new AzureBlobDataReference()
                        {
                            ConnectionString = _connectionString,
                            RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{trainingDataFileName}"
                        }
                    },
                },

                Outputs = new Dictionary<string, AzureBlobDataReference>() {
                    {
                        "output1",
                        new AzureBlobDataReference()
                        {
                            ConnectionString = "azureStorageConnectionString",
                            RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/Model_2018421.ilearner"
                        }
                    },
                },

                GlobalParameters = new Dictionary<string, string>()
                {
                }
            };

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

Ссылка на блоб: Эксперименты / experimentId / TenantId / Model_2018421.ilearner имеет неверное или отсутствующее расширение файла. Поддерживаемые расширения файлов для этого типа вывода: \\ ". csv, .tsv, .arff \\"

Я довольно озадачен этим, так как везде написана правильная документация, что если я ожидаю, что обученная модель будет использовать ".ilearner" в качестве расширения файла для модели.

Я видел этот вопрос , спрашивающий о той же ошибке при использовании DataFactory, а также этот вопрос на datascience.stackexchange . Ни у кого не было никаких подсказок, ответов или других последующих действий.

Любое понимание того, что мне не хватает, будет с благодарностью!

1 Ответ

0 голосов
/ 08 мая 2018

Для тех, кто ищет ваш "Не переосмыслить" момент дня:

Мне нужно было предоставить ДВА ссылки на выходные файлы BLOB-объектов:

var request = new BatchExecutionRequest()
            {
                Inputs = new Dictionary<string, AzureBlobDataReference>() {
                    {
                        "input1",
                        new AzureBlobDataReference()
                        {
                            ConnectionString = _connectionString,
                            RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{trainingDataFileName}.csv"
                        }
                    },
                },

                Outputs = new Dictionary<string, AzureBlobDataReference>() {
                    {
                        "output1",
                        new AzureBlobDataReference()
                        {
                            ConnectionString = _connectionString,
                            RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{outputFileNameCsv}.csv"
                        }
                    },
                    {
                        "output2",
                        new AzureBlobDataReference()
                        {
                            ConnectionString = _connectionString,
                            RelativeLocation = $"{_containerName}/{experimentId}/{tenantId}/{outputFileNameIlearner}.ilearner"
                        }
                    },
                },

                GlobalParameters = new Dictionary<string, string>()
                {
                }
            };

В американском английском языке есть старая поговорка о том, что нельзя делать предположений, и я предположил, что второй вывод является необязательным параметром, используемым в пакетных операциях. Поскольку на самом деле я не ищу более одного результата от каждого вызова, я решил, что можно безопасно удалить второй выходной параметр.

TL / DR: сохраните все параметры, которые генерирует вкладка «Потребление» портала веб-сервиса, и убедитесь, что первый из них является ссылкой на файл .csv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...