ML Model аналогия входов и выходов - PullRequest
0 голосов
/ 24 января 2019

По мере того, как я все больше и больше узнаю о ML (я являюсь мобильным разработчиком), я начинаю формировать аналогию в своей голове. Я хотел бы получить мнение / подтверждение сообщества.

В качестве внешнего интерфейса DEV у вас есть бэкэнд и API, к которому вы можете делать запросы. Стандартный формат для входов и выходов API - JSON.

У меня проблема с моделями ML, которую я пытаюсь использовать, когда я не знаю, как прочитать ожидаемый ввод (API), и не знаю, как декодировать ожидаемый вывод.

Пока что мой опыт был фрагментирован, потому что некоторые модели говорят: «Дайте мне изображение [1,2,120,120]» или что-то в этом роде.

Для сравнения, существует ли унифицированный способ определения входов и выходов для модели ML, такой как JSON унифицирует входы и выходы для внутреннего API?

Если это так, каким правилам нужно следовать для кодирования и декодирования данных в этот формат?

1 Ответ

0 голосов
/ 24 января 2019

Предполагая, что эта "Модель ML" находится в контексте запуска ввода, скажем, прямого прохода обученной модели pytorch для получения вывода, унифицированный способ определения входов и выходов для модели ML осуществляется через Tensors.Тензорные элементы по сути являются многомерной матрицей, содержащей элементы одного типа данных.Представьте себе многомерные списки с одним типом данных.

Тензор: MLModels :: JSON: WebAPI

Пример использования модели детектора объектов

  • Допустим, пример вашей модели с изображением - это модель детектора объекта, которая принимает изображение в качестве входного сигнала и выводит либо собаку, либо кошку

  • Обычно входные данные:Тензорное представление изображения в форме [1, 2, 120, 120], где 1 представляет размер пакета, 2 - это размер ваших каналов rgb, а 120x120 - ширина и высота изображения.

  • Выходными данными обычно являются: нормализованный 2-мерный тензор, подобный [0,7, 0,3], где индекс 0 представляет вероятность изображения, изображающего собаку, а индекс 1 представляет вероятность того, что это кошка.

Кодирование и декодирование

  • Декодирование вывода в строку типа «собака» или «кошка» очевидно.

  • Кодировка изображения немного меньшеочевидно.По сути, формат изображения - это тензор ... многомерная матрица, содержащая один тип данных.Таким образом, все еще интуитивно понятно кодировать изображение в виде JPEG или PNG в тензорное представление через размеры канала rgb и значения пикселей для каждого канала.Обычно файлы изображений загружаются с использованием библиотек и методов, таких как библиотека изображений Python и torchvision.transforms.ToTensor () Pytorch.

Этот пример очень специфичен для модели типа детектора объектов, нобольшинство контролируемых моделей ML будут выводить тензор, подобный приведенному выше, или метку «горячая».Большинство моделей ML в общем случае всегда имеют входные и выходные данные, которые могут быть представлены в виде тензоров.

...