Изучаем ONNX для применения в трейдинге - страница 13

 

Выступление сообщества машинного обучения — глубокое обучение с PyTorch ONNX



Выступление сообщества машинного обучения — Глубокое обучение с PyTorch и ONNX

Видео «Стандарт сообщества машинного обучения — глубокое обучение с PyTorch и ONNX» охватывает различные темы, связанные с машинным обучением, PyTorch и ONNX. В одном разделе рассказывается о переобучении и о том, как предотвратить его в нейронных сетях с помощью отсева и перекрестной проверки. Организаторы также рассказывают о различных проектах машинного обучения на базе сообщества и предстоящих мероприятиях по использованию .NET с машинным обучением. Видео также представляет PyTorch, популярную библиотеку машинного обучения, используемую для компьютерного зрения и обработки естественного языка, с различными встроенными модулями, такими как факельное зрение и преобразования. Докладчики объясняют формат ONNX для представления моделей машинного обучения и его среду выполнения для выполнения логических выводов и обучения на нескольких языках. В руководстве также обсуждается, как использовать предварительно созданные модели в зоопарке моделей PyTorch, и рассматривается отладка и управление пакетами и средами Python с использованием Jupyter Notebooks и Anaconda. Кроме того, в руководстве рассматриваются подробности обучения и экспорта модели PyTorch с использованием ONNX, которую можно использовать со средой выполнения ONNX для повышения производительности моделей.

В видео также обсуждаются различные темы, связанные с машинным обучением и глубоким обучением. Докладчики рассказывают об использовании SkiaSharp для обработки изображений в Xamarin и ограничениях моделей на устройстве из-за их размера, но отмечают преимущества наличия моделей на устройстве. Они также предлагают различные ресурсы для изучения теории машинного обучения, такие как класс Эндрю Нг Coursera и класс прикладного машинного обучения, который дает высокоуровневую информацию об использовании инструментов и библиотек для создания моделей машинного обучения. Также упоминается важность наличия цели при изучении машинного обучения и включения обучения в свою работу. Наконец, спикер намекает на предстоящий контент, который может заинтересовать аудиторию.

  • 00:00:00 В этом разделе ведущие представляют своего гостя, Кэсси Бревиу, старшего менеджера программ Microsoft в группе среды выполнения ONNX, которая будет обсуждать PyTorch и ONNX. Они кратко повторяют тему предыдущей трансляции, посвященную использованию .NET с такими библиотеками, как PyTorch. Прежде чем углубиться в основную тему, ведущие представляют новый сегмент, в котором они рассказывают о концепциях машинного обучения, начиная с отсева. Dropout — это метод предотвращения переобучения в нейронных сетях, который достигается путем случайного выпадения некоторых узлов во время обучения.

  • 00:05:00 В этом разделе видео ведущие обсуждают переоснащение и то, как использование отсева и перекрестной проверки может помочь решить проблему в моделях машинного обучения. Они упоминают, что получение 100% точности на тренировочном наборе не всегда хорошо и может привести к снижению производительности на реальных данных. Они проводят аналогию с подготовкой к тесту и запоминанием ответов без понимания стоящих за ними концепций. Затем ведущие переходят к ссылкам на сообщества и упоминают несколько проектов и презентаций сообщества, включая создание бессерверных решений для машинного обучения, приложений для анализа тональности, использование AutoML и построителя моделей, а также обучение модели классификации изображений с помощью Azure. Эти проекты направлены на то, чтобы помочь пользователям более эффективно создавать и развертывать решения ИИ.

  • 00:10:00 В этом разделе спикер рассказывает о руководстве по использованию Azure для обучения моделей классификации изображений, а также о демонстрации использования среды выполнения ONNX и обнаружения объектов с моделью YOLO v5. Они также упоминают несколько предстоящих мероприятий по машинному обучению и .NET, в том числе мероприятие Let's Learn .NET Focus on Machine Learning, где участники пройдут учебный модуль, который выйдет в конце этого месяца. Затем они обсуждают новую функцию в Visual Studio, которая позволяет использовать блокноты, аналогичные блокнотам Jupiter, и то, как это позволяет пользователям перепроектировать от пользовательского интерфейса с низким кодом к программированию, машинному обучению и более глубокому обучению. Наконец, они выражают надежду на то, что записные книжки станут стандартным форматом для руководств пользователя и примеров, позволяя пользователям загружать файлы записных книжек для запуска ячеек кода и обучения использованию API вместо чтения страниц вики или других файлов уценки.

  • 00:15:00 В этом разделе спикеры обсуждают различные обновления и улучшения, вносимые в Microsoft Learn и ML.NET. Они упоминают поддержку интерактивной записной книжки, к которой можно получить доступ через веб-интерфейс, что упрощает работу для тех, кто не знает, как настраивать локальные среды Python. Они также выделяют библиотеку Torch Sharp, которая позволяет пользователям создавать собственные нейронные сети и тесно интегрировать их со средой выполнения ONNX, улучшая опыт использования моделей глубокого обучения. Кроме того, в ML.NET особое внимание уделяется этичному и ответственному ИИ с планами по распознаванию имен, динамическому вводу и выводу данных, а также прогнозированию временных рядов, среди прочего. В целом докладчики подчеркивают важность отзывов пользователей и призывают их вносить предложения по улучшению.

  • 00:20:00 В этом разделе видео спикер обсуждает, как может измениться процесс разработки при построении моделей машинного обучения, особенно с точки зрения различных используемых инструментов и библиотек. Они сравнивают традиционное программирование с машинным обучением, объясняя, что в последнем данные вводятся в алгоритм для создания модели, которая затем используется для вывода. Затем докладчик представляет PyTorch, библиотеку машинного обучения с открытым исходным кодом, и ее различные компоненты, включая функцию нейронной сети и утилиты обработки данных. Они также касаются других библиотек, таких как TensorFlow и scikit-learn, а также таких инструментов, как блокноты Jupyter и VS Code.

  • 00:25:00 В этом разделе спикер представляет обзор PyTorch, популярной библиотеки машинного обучения, обычно используемой в компьютерном зрении и обработке естественного языка. Библиотека включает в себя несколько модулей, таких как torch vision для компьютерного зрения, torch audio для аудиоданных и torch text для обработки естественного языка. Поскольку данные являются основой для машинного обучения, модули также предоставляют функции предварительной обработки, такие как наборы данных, загрузчики данных и преобразования для подготовки данных для обучения с помощью модели. Спикер рекомендует использовать интерактивный учебник по PyTorch, чтобы узнать больше о библиотеке и ее функциях. Они также представляют ONNX, открытый формат, созданный для представления моделей машинного обучения, и среду выполнения ONNX, кроссплатформенный инструмент развертывания, который позволяет делать выводы и обучаться на нескольких языках.

  • 00:30:00 В этом разделе спикеры обсуждают использование моделей ONNX в Blazor, при этом Кэсси признается, что еще не пробовала. Они также рассказывают о том, как преобразовать модели в формат ONNX с помощью таких библиотек, как PyTorch, Scikit-learn или TensorFlow. Использовать модели ONNX просто, так как вам просто нужно импортировать библиотеку времени выполнения ONNX, создать сеанс логического вывода и передать входные данные, чтобы получить результат. Сложность связана с манипулированием данными на разных языках, так как Python считается мощным в этом отношении по сравнению с другими языками. Выступающие также упоминают модельный зоопарк, в котором есть готовые модели, которые можно использовать для логического вывода, с доступным примером кода.

  • 00:35:00 В этом разделе спикер обсуждает, как использовать готовые модели в зоопарке моделей PyTorch, уделяя особое внимание сегментации объектов с использованием быстрой rcnn, типа сверточной нейронной сети (CNN). Докладчик также вкратце коснется работы с тензорами и управления ими с помощью NumPy, отметив, что PyTorch предоставляет интерактивный блокнот для обучения эффективному управлению тензорами. Кроме того, спикер отмечает, что наборы данных PyTorch получены с помощью torchvision.datasets, который загружает их из репозитория с открытым исходным кодом.

  • 00:40:00 В этом разделе видео спикер обсуждает природу PyTorch с открытым исходным кодом, предоставляя доступ к коду и различным используемым хранилищам BLOB-объектов. Они подчеркивают, что в документации PyTorch перечислены все доступные наборы данных, к которым можно получить доступ, при этом наборы данных являются просто оболочкой для различных наборов данных с открытым исходным кодом. Докладчик подчеркивает юридические последствия использования наборов данных с открытым исходным кодом и то, что можно извлекать из источника, а что не следует размещать на хостинге. В видео также обсуждаются наборы данных и загрузчики данных, тестовые данные для проверки и создание пользовательских наборов данных. Наконец, они кратко касаются преобразований и их важности при манипулировании данными для преобразования их в тензоры и обработки с помощью алгоритма.

  • 00:45:00 В этом разделе спикер рассказывает об инструментах, которые он использует для управления пакетами и средами Python. Он выделяет Anaconda, инструмент, который он любит и добавил в свой терминал Windows, где он может быстро активировать и использовать различные предварительно настроенные пакеты для разных библиотек машинного обучения. Он продолжает демонстрировать, как он использует Jupyter Notebooks в VS Code, который предлагает больше инструментов, Intellisense и возможность использовать облачный компьютер для запуска моделей, которым требуется более крупный графический процессор. Наконец, он отмечает, что для тех, кто предпочитает среду .NET, Jupiter Notebook можно установить напрямую благодаря запуску Anaconda.

  • 00:50:00 В этом разделе спикер обсуждает работу Jupyter Notebook с PyTorch в Azure Machine Learning Studio, где пользователи могут устанавливать любые необходимые пакеты и использовать любой инструмент по своему усмотрению. Докладчик кратко рассказывает о кратком руководстве по PyTorch, которое доступно в Azure Machine Learning Studio и на веб-сайте PyTorch, а затем переключает обсуждение на ONNX. Не вдаваясь слишком глубоко, спикер дает краткий обзор архитектуры модели, функции потерь и оптимизатора, необходимого для обучения модели. Спикер также кратко упоминает о Copilot и его способности писать комментарии для пользователей.

  • 00:55:00 В этом разделе спикер объясняет, как обучить и экспортировать модель глубокого обучения PyTorch с помощью ONNX. Чтобы обучить модель, пользователи должны установить количество эпох и проверочные данные, убедившись, что они отличаются от тестовых данных, чтобы избежать переобучения. Динамик показывает график потерь модели в каждую эпоху по мере прохождения каждой партии, и после завершения обучения модель можно экспортировать в формат ONNX с помощью функции, которая отправляет тензор на устройство. Экспортированную модель можно использовать для выполнения логических выводов с использованием среды выполнения ONNX с входными тензорами и оптимизированной оптимизацией графов для повышения производительности. Докладчик также демонстрирует поддержку Xamarin для среды выполнения ONNX, которая скоро будет выпущена.

  • 01:00:00 В этом разделе докладчики обсуждают использование SkiaSharp для обработки изображений в Xamarin и то, как среда выполнения ONNX используется для обработки данных. Они упоминают ограничения использования моделей на устройстве из-за их размера, но отмечают преимущества наличия моделей на устройстве. Выступающие также вкратце коснутся архитектуры Xamarin и того, как она создает каркасы. Обсуждение заканчивается упоминанием о желании более тесного сотрудничества между разработчиками C# и миром ИИ, а также о том, как любой, у кого есть вопросы по машинному обучению или глубокому обучению, может обратиться к Кэссиди Уильямс в Твиттере или через дескриптор среды выполнения ONNX в Твиттере для получения ответов.

  • 01:05:00 В этом разделе ведущие обсуждают ресурсы для тех, кто заинтересован в изучении теории машинного обучения. Они предлагают пройти курс курса, например, тот, что вел Эндрю Нг, который углубляется в закулисную работу моделей глубокого обучения. Они предупреждают, что есть два подхода к машинному обучению: прикладной метод и теоретический метод. Другие ресурсы включают в себя класс прикладного машинного обучения на Coursera, который дает высокоуровневую информацию об использовании инструментов и библиотек для создания моделей машинного обучения, а также путь обучения PyTorch, который является более подробным и охватывает некоторые математические вопросы. Кроме того, докладчики упоминают хакатон для ML.Net, который состоится в ближайшие недели.

  • 01:10:00 В этом разделе спикер обсуждает важность наличия цели при изучении машинного обучения и глубокого обучения. В Интернете доступно множество бесплатных ресурсов, но решить, с чего начать, может быть сложно. Спикер предлагает поставить цель, например, обучить модель компьютерного зрения, и найти ресурсы, соответствующие этой цели. Также может быть полезно включить обучение в свою работу, например, использовать хакатоны или проектные спринты, чтобы попробовать что-то новое. Спикер также упоминает, что важно продолжать преодолевать трудности и не сдаваться, пока цель не будет достигнута. Наконец, спикер намекает на предстоящий контент, который может заинтересовать аудиторию.
 
Object-Detection Yolov7, ML.NET onnx model
Object-Detection Yolov7, ML.NET onnx model
  • 2023.01.13
  • www.youtube.com
Github:https://github.com/ptiszai/Object-Detection-yolov7-ML.NET-onnx
 

Реализация модели Yolo3 в реальном времени с помощью C#



Реализация модели Yolo3 в реальном времени с помощью C#

https://github.com/duonghb53/YoloOnCSharpGPU

Implement Yolo3 Real-time using C#
Implement Yolo3 Real-time using C#
  • 2021.05.29
  • www.youtube.com
Using Alturos & OpenCvSharp run Object Detection Real-time#yolo #objectdetection #csharp #windowsLink source: https://github.com/duonghb53/YoloOnCSharpGPU
 

Распознавание лиц с помощью C# и OpenCVSharp — группа пользователей ML.NET 19.01.2022



Распознавание лиц с помощью C# и OpenCVSharp — группа пользователей ML.NET 19.01.2022

Видеоруководство по распознаванию лиц с помощью OpenCVSharp в C# началось с того, что докладчик представил библиотеку OpenCVSharp, библиотеку с открытым исходным кодом для задач компьютерного зрения, с оболочкой .NET. В видео обсуждается использование различных классификаторов для обнаружения, в том числе для глаз, и важность экспериментов при выборе классификатора. Учебное пособие помогло слушателю создать программу для распознавания лиц и глаз с помощью веб-камер с помощью фрагментов кода, визуальной студии и интерактивных блокнотов .NET. Также были проработаны различные аспекты, в том числе то, как накладывать прозрачные изображения и правильно обрабатывать матовые объекты. Докладчик признал простоту использования, скорость и совместимость OpenCVSharp с .NET, но также отметил отсутствие примеров и ненадежную долгосрочную поддержку.

  • 00:00:00 В этом разделе спикер представляет тему распознавания лиц с помощью OpenCVSharp в C# и дает краткий обзор того, что такое OpenCVSharp, который является оболочкой .NET для OpenCV, библиотеки с открытым исходным кодом для задач компьютерного зрения. Докладчик обсуждает различные функции OpenCVSharp, включая манипулирование изображениями, распознавание лиц и модели распознавания лиц. Докладчик также отмечает, что, хотя примеров C# для OpenCVSharp не так много, есть много примеров Python, которые можно легко преобразовать в C# из-за схожести API. Затем докладчик приводит несколько примеров того, как выполнять определенные задачи как на Python, так и на C# с помощью OpenCVSharp.

  • 00:05:00 В этом разделе докладчик обсуждает различные разновидности OpenCVSharp и важность сочетания управляемых библиотек с собственными библиотеками привязки. Затем они демонстрируют несколько примеров использования Visual Studio Code и интерактивных записных книжек .NET, загрузки пакетов NuGet и использования XML-файлов жесткого каскада для обнаружения лиц. Код проходит через ввод жестких каскадных классификаторов и их использование для обнаружения лиц и рисования прямоугольников вокруг них на изображениях.

  • 00:10:00 В этом разделе докладчик объясняет важность правильной обработки и удаления «матовых объектов» в OpenCVSharp, чтобы избежать потенциальных утечек памяти. Они демонстрируют, как загрузить исходное изображение и создать новое пустое «серое изображение» для распознавания лиц, поскольку классификатор лучше всего работает с черно-белыми изображениями. Затем они объясняют, как использовать «выровненную гистограмму cb2» для нормализации яркости и контрастности изображения, что приводит к улучшенной каскадной классификации. Докладчик также обсуждает, как использовать требования к минимальному размеру для обнаружения лиц, чтобы избежать ложных срабатываний и артефактов. Наконец, они показывают, как использовать «прямоугольник cv2», чтобы нарисовать рамку вокруг обнаруженных лиц и открыть окно, чтобы показать результирующее изображение, при этом ключ веса используется как способ для пользователя закрыть окно.

  • 00:15:00 В этом разделе видео спикер обсуждает, как они не ожидают прихода весового ключа, так как он им не нужен для показа статического изображения. Тем не менее, это станет более важным, когда они посмотрят демонстрацию веб-камеры. Они также отвечают на вопрос о пространствах имен по умолчанию и продолжают объяснять, как они собираются обнаруживать не только лицо, но и глаза на лице. Они обсуждают использование двух каскадных файлов — лобного лица и каскада глаз — и то, как они перебирают прямоугольники лица, чтобы попытаться выполнить дополнительное обнаружение глаз. Они объясняют процесс создания области интереса (ROI) и рисования прямоугольника вокруг лица.

  • 00:20:00 В этом разделе инструктор описывает процесс обнаружения глаз на изображении лица с помощью вложенных каскадов в OpenCVSharp. Они берут ранее обнаруженную интересующую область лица, преобразуют ее в серый цвет, а затем применяют вложенный каскад специально для обнаружения глаз. Делая это, они могут рисовать круги вокруг обнаруженных глаз, причем центральная точка круга является местоположением обнаруженных глаз. Они отмечают, что размер детектируемых глаз должен быть меньше размера детектируемого лица, и методом проб и ошибок настраивают параметры вложенного каскада, чтобы лучше детектировать глаза на лицах разного размера. В целом, хотя этот процесс и не идеален, в большинстве случаев он эффективен для обнаружения глаз.

  • 00:25:00 В этом разделе спикер обсуждает различные классификаторы, которые можно использовать для распознавания лиц, и необходимость экспериментов, чтобы определить, какой классификатор лучше всего подходит для конкретных ситуаций. Докладчик также признает, что в процессе обнаружения могут быть артефакты, и предлагает использовать логику для их устранения при продукционализации процесса. Затем докладчик переходит к обсуждению использования веб-камер и того, чем код для распознавания лиц и глаз веб-камеры похож на предыдущие примеры, с той лишь разницей, что введен захват видео и создание объекта-окна. Наконец, подчеркивается важность ожидания одной миллисекунды между кадрами, чтобы увидеть, была ли нажата клавиша, поскольку это сильно влияет на количество кадров в секунду, захватываемых веб-камерой.

  • 00:30:00 В этом разделе ведущий демонстрирует функцию распознавания лиц в OpenCVSharp с использованием C#. Код захватывает данные с веб-камеры и определяет лицо субъекта, помещая вокруг него рамку. Ведущий объясняет весовой ключ, отличительную особенность OpenCVSharp, которая должна быть включена, чтобы окно отображало изображение. Далее они отвечают на вопрос о том, когда выполняется метод весового ключа, и описывают, как он используется. В разделе также приведен пример добавления кадров в секунду в код захвата данных веб-камеры. Докладчик отмечает важность включения ключа веса, поскольку его забвение может вызвать проблемы, и демонстрирует, как уничтожить все окна в коде.

  • 00:35:00 В этом разделе ведущий обсуждает, как они могут выводить текст на экран и управлять цветом с помощью C# и OpenCVSharp. Они объясняют, как они определяют цвет для рамки вокруг лиц и глаз, и определяют другой цвет, называемый цветом кадров в секунду, который становится красным, если частота кадров меньше 20 кадров в секунду, и зеленым, если она больше или равна 20. Они также продемонстрируйте эффект задержки весового ключа и то, как он влияет на частоту кадров. Они упоминают, что со всеми переменными, которые в него входят, они счастливы, если могут получить 20 или более кадров в секунду, что позволяет им достичь своих целей на данный момент.

  • 00:40:00 В этом разделе докладчик демонстрирует, как накладывать изображения, и объясняет важность использования IamReadModes без изменений для сохранения элемента прозрачности изображения. Они используют солнцезащитные очки в качестве примера и признают, что код не оптимизирован, так как у них не было времени сделать все идеально. Они также жульничают, жестко запрограммировав координаты того места, где они хотят, чтобы солнцезащитные очки приземлились, вместо того, чтобы использовать координаты x и y прямоугольника лица. Докладчик объясняет, что в реальных сценариях нужно было бы передать координаты x и y в метод MakeOverlay, чтобы узнать, где разместить наложение. Кроме того, они упоминают метод Resize, который необходимо использовать для изменения размера накладываемого изображения в зависимости от размера прямоугольника, но в их примере с читерством это не обязательно.

  • 00:45:00 В этом разделе спикер объясняет процесс наложения прозрачного наложенного изображения на базовое изображение. Во-первых, прозрачное наложенное изображение преобразуется в RGB с сохранением прозрачного канала. Затем каналы RGB извлекаются из исходного наложения и объединяются в новую карту. После этого канал прозрачности объединяется с новой картой путем его трехкратного дублирования в новую карту под названием «наложение альфа-канала 3» и выполнения побитовой операции. Наконец, определяется интересующая область, где будут размещены солнцезащитные очки, и прямоугольник лица извлекается, чтобы служить интересующей областью лица для объединения солнцезащитных очков.

  • 00:50:00 В этом разделе спикер кратко объясняет процесс добавления солнцезащитных очков к обнаруженному лицу с помощью OpenCVSharp. Они используют побитовые операции, чтобы поместить солнцезащитные очки поверх обнаруженного лица, сохранить прозрачность и вернуть лицо в исходное положение. Докладчик также выделяет некоторые плюсы и минусы OpenCVSharp, такие как простота использования, скорость и совместимость с .NET, но отсутствие примеров и ненадежная долгосрочная поддержка. Спикер предоставляет различные ресурсы и призывает пользователей спонсировать проект OpenCVSharp на GitHub. Участник спрашивает, может ли OpenCVSharp работать на микроконтроллере, таком как Raspberry Pi, и спикер отвечает, что это должно быть возможно с версией Linux Arm.
 

Прогнозирование модели Custom Vision ONNX с помощью ML.NET



Прогнозирование модели Custom Vision ONNX с помощью ML.NET

В этом видео на YouTube докладчик обсуждает использование ML.NET для прогнозирования на основе пользовательской модели ONNX. Это включает в себя экспорт модели из пользовательской службы машинного зрения и ее импорт в проект ML.NET. Реализация включает в себя изменение размера изображений, извлечение пикселей изображения, создание контекста данных и пустого списка данных для загрузки данных изображения, использование платформы ML.NET для прогнозирования модели и вывод результатов. Видео также демонстрирует, как получить выходное имя модели с помощью инструмента под названием Neuron и как получить информацию о ограничивающей рамке из модели для заданного тестового изображения. В докладчике также показано, как нарисовать прямоугольник вокруг ограничительной рамки и отобразить предсказанные метки с помощью Graphics API. Реализация модели ONNX с использованием ML.NET API и изменение размера изображения подчеркивается как наиболее важная часть реализации.

  • 00:00:00 Мы будем использовать платформу ML.NET для прогнозирования пользовательской модели ONNX. Для этого нам нужно сначала экспортировать модель из пользовательского сервиса машинного зрения и импортировать ее в наш проект ML.NET. Как только модель окажется в нашем проекте, мы можем создать конвейер, который изменяет размеры изображений и извлекает пиксели изображения, прежде чем делать прогноз для модели. Для этого нам нужно загрузить и добавить в наш проект несколько пакетов NuGet, а также создать новый контекст данных и пустой список данных для загрузки данных изображения. Наконец, мы используем платформу ML.NET для прогнозирования модели и вывода результатов.

  • 00:05:00 В этом разделе докладчик обсуждает использование инструмента Neuron для получения выходного имени модели, загруженной из Custom Vision. Neuron — это небольшое настольное приложение, которое предоставляет информацию о модели, включая входные и выходные данные. После получения выходного имени его можно использовать в качестве имени выходного столбца при вызове преобразования для применения модели. Докладчик также демонстрирует, как создать механизм прогнозирования и использовать вспомогательные методы для получения информации о ограничивающей рамке из модели для заданного тестового изображения.

  • 00:10:00 В этом разделе спикер продолжает реализацию модели обнаружения объектов, демонстрируя, как получить ограничивающие рамки, нарисовать вокруг них прямоугольник и отобразить предсказанные метки для изображений с помощью Graphics API. Максимальная достоверность достигается для получения верхней ограничивающей рамки, где рассматривается только одна ограничивающая рамка с максимальной достоверностью. Код также использует вспомогательные методы для рисования прямоугольника, а строка описания возвращается для указания процента достоверности. Наконец, тестовое изображение сохраняется в файловой системе для дальнейшего использования. Спикер подчеркивает, что большая часть реализации — это изменение размера изображений и применение модели ONNX с использованием ML.NET API.
 

Делаем нейронные сети переносимыми с помощью ONNX



Делаем нейронные сети переносимыми с помощью ONNX

В этом видео на YouTube Рон Дагдаг объясняет, как сделать нейронные сети переносимыми с помощью ONNX, уделяя особое внимание стороне машинного обучения, связанной с логическими выводами. ONNX — это платформа с открытым исходным кодом, которая обеспечивает переносимость моделей машинного обучения между различными процессорами и устройствами. Спикер обсуждает процесс преобразования моделей в ONNX, развертывание и интеграцию модели с приложениями, а также ее использование для облачного и периферийного развертывания. Они также демонстрируют, как загрузить модель ONNX в Node.js и интегрировать модели классификации изображений в веб-приложения и мобильные приложения с помощью среды выполнения ONNX. Модели ONNX — это открытый стандарт, который может быть создан из различных сред для эффективного развертывания на целевой платформе.

  • 00:00:00 В этом разделе Рон Дагдаг представляет концепцию переноса нейронных сетей через ONNX, уделяя особое внимание стороне машинного обучения, основанной на выводах. Он объясняет типичный процесс программирования по сравнению с машинным обучением и необходимость обучающих данных, обучающей среды, модели и среды выполнения для создания алгоритмов. Он также упоминает, что основное внимание в презентации будет уделено логическому выводу с использованием ONNX для включения модели в приложение.

  • 00:05:00 В этом разделе спикер представляет ONNX как платформу, которая обеспечивает переносимость моделей машинного обучения на различные процессоры, такие как ЦП, ГП и ПЛИС, а также на различные устройства, такие как облако или Интернет вещей. Они сравнивают его с PDF в том, что это формат, который можно использовать где угодно, и он имеет открытый исходный код на GitHub, получив более 11 000 звезд и 200 участников. Докладчик рекомендует использовать ONNX при работе с моделями, обученными Python, которые необходимо развернуть с другими приложениями или которые требуют высокой задержки логического вывода, например, при работе на периферийных устройствах, таких как Azure Percept.

  • 00:10:00 В этом разделе спикер обсуждает сценарии, когда возникает необходимость преобразовать приложение, запрограммированное на определенной операционной системе (ОС) или оборудовании, для работы на другой ОС или оборудовании. Решение состоит в том, чтобы преобразовать программу в формат ONNX. ONNX используется при запуске моделей, созданных из разных фреймворков, и когда обучение занимает слишком много времени. Затем спикер подробно описывает четыре способа получения модели ONNX, первый из которых — зоопарк моделей ONNX на GitHub. Затем следует настраиваемая служба машинного зрения, преобразование из существующей модели и обучение с использованием машинного обучения Azure или автоматизированного машинного обучения.

  • 00:15:00 В этом разделе спикер обсуждает процесс конвертации моделей в ONNX. Этот процесс не ограничивается моделями, написанными на Python, и также может выполняться с помощью ML.NET. Докладчик демонстрирует, как преобразовать модель ML.NET, а затем сохранить ее в ONNX. Доступно множество моделей, преобразованных в ONNX, включая модели классификации изображений и обнаружения объектов. Службу пользовательского машинного зрения также можно использовать для загрузки изображений и маркировки их для классификации различных типов объектов. GitHub предоставляет приложение под названием Netron, которое позволяет разработчикам программного обеспечения визуализировать, как выглядит модель ONNX, включая ее ввод и вывод. Спикер объясняет, что модель ONNX также можно сгенерировать, преобразовав ее из PyTorch или TensorFlow.

  • 00:20:00 В этом разделе спикер демонстрирует, как создать регрессионную модель и экспортировать ее в ONNX — формат с открытым исходным кодом, обеспечивающий переносимость при использовании различных платформ машинного обучения. Используя C# и ml.net, спикер загружает данные о зарплате во фрейм данных и обучает модель регрессии, указывая столбец меток и входные данные (годы опыта) с помощью конвейера. После оценки модели они преобразуют ее в ONNX, передавая модель, образцы данных и поток в контекст, в результате чего создается файл, который можно просмотреть с помощью Netron. Спикер отмечает, что ONNX также можно использовать в качестве промежуточного формата для преобразования моделей машинного обучения между фреймворками, такими как PyTorch и TensorFlow.

  • 00:25:00 В этом разделе спикер обсуждает процесс развертывания и интеграции модели ONNX в приложение. Преобразование моделей в ONNX обеспечивает совместимость с различными платформами, и пользователи также могут использовать модели ONNX для переноса обучения и тонкой настройки. Докладчик подчеркивает важность управления версиями и наличия модельного реестра, как и реестра контейнеров, для легкого отслеживания и развертывания. Кроме того, спикер выделяет различные наборы навыков, необходимые специалистам по данным, создающим «рецепт», по сравнению с навыками, необходимыми для инженеров, открывающих «пекарню» и интегрирующих ИИ в приложения. В докладе рассматриваются различные фреймворки и платформы, которые поддерживают развертывание моделей ONNX, таких как Машинное обучение Azure, Ubuntu или Windows Server, а также пограничные устройства IoT.

  • 00:30:00 В этом разделе спикер обсуждает развертывание моделей машинного обучения, охватывая как облачное, так и периферийное развертывание. По словам спикера, периферийное развертывание — это то, насколько близко обработка данных находится к пользователям, и это намного ближе, чем облако. Запуск ИИ на периферии идеально подходит для низкой задержки и экономии средств, поскольку он может обрабатывать данные локально без загрузки в облако. Кроме того, локальный запуск более гибок и может обеспечить соблюдение конфиденциальности, что особенно важно при работе с правилами, запрещающими обмен изображениями за пределами сети. Чтобы упростить развертывание моделей машинного обучения на периферии, Microsoft разработала среду выполнения ONNX с открытым исходным кодом, которая поддерживает не только нейронные сети, но и традиционные спецификации машинного обучения, может выполнять высокопроизводительные логические выводы и имеет расширяемую архитектуру для аппаратных ускорителей.

  • 00:35:00 В этом разделе спикер обсуждает, как сделать нейронные сети переносимыми с помощью ONNX. Среда выполнения ONNX позволяет пользователям запускать модели на различных процессорах, включая графические процессоры, центральные процессоры и визуальные процессоры, и может использоваться на различных платформах, таких как Windows, веб-браузеры, приложения Node.js и React Native. Докладчик демонстрирует демонстрацию того, как загрузить модель ONNX в приложение Node.js и как передать входные значения для получения желаемого результата. Используя среду выполнения ONNX, разработчики могут легко включать модели машинного обучения в свои приложения, не беспокоясь о совместимости оборудования.

  • 00:40:00 В этом разделе видео обсуждается ONNX Runtime Web, библиотека JavaScript, предназначенная для запуска моделей ONNX непосредственно в браузере с использованием оптимизированных технологий WebAssembly и WebGL. Этот метод вывода в браузере быстрее, безопаснее и дешевле, а также позволяет использовать его в автономном режиме. Однако это может быть неэффективно для более крупных моделей, требующих определенных характеристик оборудования, и может привести к увеличению времени загрузки. Видео представляет собой пример использования ONNX Runtime Web для анализа изображения плачущего ребенка, демонстрируя, как модель интегрируется в HTML-файл и выполняется с использованием среды выполнения.

  • 00:45:00 В этом разделе видео докладчик демонстрирует, как использовать зоопарк модели ONNX и веб-среду выполнения ONNX для интеграции модели классификации изображений в веб-приложение. Он загружает изображение в веб-приложение, изменяет его размер и преобразует в оттенки серого и тензор, чтобы подготовить его для предварительно обученной модели. Используя сеть времени выполнения ONNX, модель загружается и получает обработанное изображение, в результате чего получается прогноз эмоций, выраженных на изображении. Затем докладчик демонстрирует оценку предварительно обученной модели ONNX в приложении React Native.

  • 00:50:00 В этом разделе спикер обсуждает использование мобильной среды выполнения ONNX в качестве облегченного решения для логического вывода для запуска оптимизированных моделей ONNX на платформах Android и iOS. Чтобы интегрировать мобильную среду выполнения ONNX в приложение, можно использовать npm install ONNX runtime react native, который минимизирует размер двоичного файла до предварительно оптимизированной модели ONNX, называемой форматом ort. Учебное пособие, доступное на onnxruntime.ai, пошагово объясняет, как развертывать модели ONNX с использованием различных платформ, таких как Node, веб-браузер, React Mobile и т. д. Таблица совместимости показывает, что Chrome поддерживает веб-сборку и webGL в Windows 10, macOS, Ubuntu. , iOS и Android. Модели ONNX — это открытый стандарт, который может быть создан из различных сред для эффективного развертывания с использованием нужных инструментов на целевой платформе.
 

В .NET Live — AI везде: Azure ML и среда выполнения ONNX



В .NET Live — AI везде: Azure ML и среда выполнения ONNX

Видео «В .NET Live — AI везде: Azure ML и среда выполнения ONNX» посвящено использованию Azure ML и среды выполнения ONNX для машинного обучения с помощью C#. Докладчики обсуждают преимущества использования формата ONNX для экспорта моделей между языками программирования, оптимизацию среды выполнения ONNX для аппаратного ускорения и логического вывода, а также ее совместимость с конкретными версиями платформы. Они также демонстрируют, как использовать среду выполнения ONNX с Azure ML в Python и .NET, создают и обучают модель нейронной сети, а также объясняют вывод и его последний этап в машинном обучении. Видео завершается введением нового провайдера для среды выполнения ONNX, который позволяет использовать OpenVINO для ЦП ARM, предоставляя возможности отладки.

В этом разделе видео ведущие обсуждают гибкость и настраиваемость среды выполнения ONNX, а также ее способность работать на различных аппаратных и программных платформах. Среда выполнения ONNX считается отличной оболочкой для разных платформ, поскольку клиенты могут использовать ее в облаке, Android, iOS или процессоре Snapdragon, и она позволяет быстрее делать выводы.

  • 00:00:00 В этом разделе ведущие представляют гостя, Маро Беничи, итальянского разработчика .NET с опытом работы в области искусственного интеллекта (ИИ). В этом выпуске основное внимание будет уделено тому, как использовать Azure ML и среду выполнения ONNX с C# для продолжения изучения машинного обучения. В сегменте связанных битов они обсуждают документ на сайте машинного обучения Azure о прогнозировании с помощью моделей AutoML ONNX в .NET, который тесно связан с темой дня.

  • 00:05:00 В этом разделе спикер обсуждает вариант экспорта моделей машинного обучения в формат ONNX для совместного использования моделей между платформами с использованием компонентов Automl внутри Машинного обучения Azure. Для выполнения вывода в .NET используется пакет среды выполнения ONNX, а ml.net выполняет конвейер прогнозирования с использованием модели ONNX. Представлен Netron, инструмент для понимания входных и выходных данных модели, и продемонстрировано создание классов для входных и выходных данных. Наконец, определяется конвейер, включающий модель, и экземпляр входных данных проходит через механизм для прогнозирования, в результате чего на выходе получается прогнозируемый тариф. Затем докладчик кратко представляет связанную статью об использовании среды выполнения ONNX со Stable Difussion для создания изображений AI.

  • 00:10:00 В этом разделе спикер рассказывает о том, как развивались технологии за последние 15 лет, от нестандартного оборудования до центров обработки данных и облачных вычислений. Он приводит пример своего первого проекта 2006 года, в котором использовались самодельные датчики для улавливания минералов на винограднике, а также то, как данные сохранялись на портативных жестких дисках и отправлялись в лабораторию для анализа. Сегодня тот же проект можно выполнить с помощью мобильного телефона, при этом данные собираются в облаке и анализируются в режиме реального времени, что позволяет мгновенно получать оповещения и вносить коррективы. Спикер также рассказывает о том, как переход к облаку открыл возможности для бизнеса, поскольку облачные услуги теперь доступны для клиентов, которые ранее были ограничены локальными вычислениями.

  • 00:15:00 В этом разделе спикер обсуждает проблемы, с которыми сталкиваются клиенты, использующие разные языки программирования для создания и развертывания своих моделей машинного обучения. Он объясняет, что формат ONNX был создан как решение этой проблемы, позволяя клиентам сохранять свои модели на языке, который можно перезагружать на другом языке программирования. Далее он объясняет, что ONNX может экспортировать математические функции и значения слоев в нейронную сеть, что позволяет легко конвертировать их между разными языками. Спикер подчеркивает, что ONNX используется многими компаниями, что позволяет передавать код на аутсорсинг и использовать разные компании, знающие разные языки программирования.

  • 00:20:00 В этом разделе видео обсуждается платформа ONNX и ее использование для экспорта и запуска моделей машинного обучения на разных платформах и языках программирования. Фреймворк ONNX позволяет пользователям экспортировать модели и запускать их без перезагрузки библиотек или фреймворков, что упрощает работу для клиентов, которые могут не знать о Python и TensorFlow. Среда выполнения ONNX имеет открытый исходный код и доступна на GitHub, и пользователи могут выбрать предпочитаемый язык и архитектуру для запуска модели. Видео также затрагивает совместимость набора опций и то, как на него влияют, поскольку важно обеспечить совместимость с конкретными версиями фреймворка.

  • 00:25:00 В этом разделе спикеры обсуждают, как обеспечить совместимость математических функций, используемых в моделях ИИ, с библиотекой времени выполнения ONNX. Они рекомендуют использовать самую последнюю версию библиотеки, которая поддерживает все операции в модели. Они также упоминают о недавнем обновлении документации ONNX, которое обеспечивает лучшее понимание того, какие приложения поддерживаются, а какие нет. Если математическая функция не поддерживается, генерируется предупреждение, и пользователю сообщается, какое смещение не поддерживается. Спикеры также обсуждают преимущества библиотеки времени выполнения ONNX, такие как аппаратное ускорение для графических процессоров и оптимизация для моделей ИИ.

  • 00:30:00 В этом разделе спикер обсуждает оптимизацию среды выполнения ONNX и возможность ее использования как для обучения, так и для логического вывода. С помощью ONNX можно оптимизировать процесс обучения и использовать специальное оборудование, не начиная с нуля. Докладчик также подтверждает, что среда выполнения ONNX может использоваться для оптимизации оборудования для обучения, а для логического вывода может быть выбрано другое оборудование. В целом докладчик подчеркивает возможность создания и обучения моделей для любой аппаратной среды и гибкость среды выполнения ONNX.

  • 00:35:00 В этом разделе спикер рассказывает об использовании Azure ML и ONNX Runtime для создания нейросети для классификации цветов. Они начинают с выбора приложения, работающего внутри стандартной машины S11, для измерения. Затем они используют Tensorflow, как обычно использует их компания, и выбирают pandas, NumPy и другие инструменты предварительной обработки. Они обсуждают кодирование строк в виде матриц и разделение набора данных между обучением и тестированием. Наконец, они создают нейронную сеть, которую кодируют в формате ONNX, чтобы ее можно было использовать в центре обработки данных их клиентов.

  • 00:40:00 В этом разделе видео спикер объясняет процесс обучения модели нейронной сети с помощью Azure Machine Learning и TensorFlow. Он демонстрирует, как скомпилировать модель и оптимизировать точность, прежде чем оценивать производительность модели. После обучения модели он показывает, как импортировать модель в TensorFlow, чтобы создать новую модель для клиента. Чтобы облегчить задачу заказчику, он определяет спецификацию ввода и называет вход и выход. Он также объясняет преимущества преобразования модели в формат ONNX для тестирования перед доставкой заказчику.

  • 00:45:00 В этом разделе видео спикер демонстрирует, как использовать среду выполнения ONNX с Azure ML на Python и .NET. Они один раз импортируют ONNX в Python, выбирают поставщика и загружают среду выполнения ONNX для использования, игнорируя модель TensorFlow. Они создают ввод и передают его значениями массива перед запуском модели для получения вывода. Кроме того, докладчик показывает, как создать конечную точку для предоставления ONNX непосредственно в Azure и как использовать ONNX на устройстве IoT или смартфоне с помощью консольного приложения на .NET Core.

  • 00:50:00 В этом разделе ведущие объясняют концепцию вывода, который является последним шагом в машинном обучении, когда обученная нейронная сеть используется для прогнозирования результатов на основе новых данных, которые она никогда раньше не видела. Они также обсуждают формат ONNX, который может преобразовывать любые пользовательские тензорные модели в формат, поддерживаемый средой выполнения ONNX. Они упоминают, что предварительная и постобработка модели также может быть сериализована в саму модель ONNX, что упрощает ее запуск на каждой платформе. Ведущие демонстрируют, что процесс одинаков для разных языков после загрузки модели.

  • 00:55:00 В этом разделе спикер обсуждает прибывший новый провайдер для среды выполнения ONNX, позволяющий использовать OpenVINO для ЦП ARM, позволяющий проводить отладку. Спикер подчеркивает силу этого, заявляя, что когда модель поддерживается и ее можно запускать, нет необходимости менять код, и можно запускать одну и ту же модель без постоянного ее преобразования. Докладчик отмечает, что, хотя выбор аппаратного обеспечения для модели имеет важное значение, среда выполнения ONNX не контролирует его, и решения, принимаемые при эксплуатации модели, должны учитывать требования к аппаратному обеспечению. Кроме того, спикер упоминает, что в кластере можно использовать среду выполнения ONNX, и в выводе модель не нужно каждый раз преобразовывать.
 

Berlin Buzzwords 2019: Лестер Солбаккен — Масштабирование ONNX и оценка модели TensorFlow в поиске



Berlin Buzzwords 2019: Лестер Солбаккен — Масштабирование ONNX и оценка модели TensorFlow в поиске

Лестер Солбаккен обсуждает проблемы масштабирования машинного обучения для поисковых приложений и предлагает решение, альтернативное использованию внешних серверов моделей. Он предлагает оценивать модели машинного обучения на узлах контента, а не отправлять данные на внешние серверы моделей, чтобы улучшить масштабируемость и контролировать задержку и пропускную способность. Солбаккен подчеркивает, что Vespa использует собственный язык ранжирования и расширение тензорного API, чтобы упростить создание декларативного пакета состояния для приложения, а также постоянные усилия по поддержке моделей машинного обучения в Vespa. Он подчеркивает важность понимания корреляции между различными этапами ранжирования, чтобы избежать проблем с поиском на уровне системы, и призывает людей вносить свой вклад в проект с открытым исходным кодом.

  • 00:00:00 В этом разделе видео Лестер Солбаккен обсуждает проблемы масштабирования машинного обучения специально для поисковых приложений. Он объясняет, почему модельные серверы становятся все более популярными для решения проблем с производительностью и масштабируемостью, но для поисковых приложений оценка модели для каждого из результатов поиска быстро приводит к узким местам в пропускной способности сети. Решение состоит в том, чтобы либо отправлять меньше данных для получения результатов, либо найти способ оценить модель локально для каждого сервера. Солбаккен рассказывает о работе своей команды с поисковой платформой Vespa для решения этих проблем.

  • 00:05:00 В этом разделе Лестер Солбаккен обсуждает проблему масштабирования оценки модели ONNX и TensorFlow для поиска. Одним из возможных решений является отправка функций на серверы моделей, но проблема заключается в том, что серверы контента и моделей могут оценивать ранжирование на основе разных наборов функций, что может снизить вероятность получения лучших результатов в глобальном масштабе. Вместо этого Солбаккен предлагает оценивать модели на контент-серверах для достижения лучших результатов, над чем работали в Vespa. Vespa, которая активно используется для обработки сотен тысяч запросов в секунду по всему миру с сотнями публикаций в США, обладает богатыми базовыми функциями, включая эластичность, масштабируемость и возможности для расширенной релевантной оценки.

  • 00:10:00 В этом разделе Лестер Солбаккен обсуждает, как Vespa интегрирует ONNX и TensorFlow, чтобы упростить создание декларативного пакета состояния для приложения, упрощая использование моделей машинного обучения. Vespa использует собственный язык ранжирования для выполнения этих моделей, а расширение тензорного API предоставляет небольшой набор основных функций, которые могут представлять различные типы вычислений. Преимущество этого заключается в том, что разные модели из разных источников могут быть переведены в этот формат, что упрощает их оптимизацию. Солбаккен также выделяет тест, который они установили для проверки гипотезы о том, что отправка данных неэффективна, имитируя систему рекомендаций блогов, где они использовали точечный продукт на первом этапе и нейронную сеть на втором этапе.

  • 00:15:00 В этом разделе спикер обсуждает ограничения масштабируемости серверов внешних моделей для машинного обучения в поиске и предлагает альтернативное решение. Он объясняет, что добавление дополнительных узлов контента для распределения рабочей нагрузки может уменьшить задержку, и предполагает, что, заставив эти узлы переписывать большее количество документов, вы можете увеличить количество результатов с помощью моделей машинного обучения, что приведет к потенциально более качественным результатам. Благодаря многоэтапному ранжированию, когда оценка выполняется на узле контента, а не просто передается по сети, можно масштабировать и контролировать задержку и пропускную способность. Докладчик заключает, что серверы внешних моделей не являются хорошим решением для масштабирования, и вместо этого подчеркивает важность оценки на узле контента.

  • 00:20:00 В этом разделе Лестер Солбаккен рассказывает о многоэтапном ранжировании в Vespa и важности понимания корреляции между различными фазами, чтобы избежать проблем с поиском на уровне системы. Он также упоминает, что поддержка моделей в машинном обучении и Vespa является постоянным усилием, и призывает людей вносить свой вклад в проект с открытым исходным кодом. Те, кто хочет поиграть с Vespa, могут найти множество ресурсов на домашней странице Vespa AI, включая примеры приложений, варианты использования и учебные пособия.
 

Ассимиляция ONNX



Ассимиляция ONNX

В этом видео ведущий представляет ONNX как открытый стандарт взаимодействия машинного обучения, который может работать на всех различных платформах. Они проходят процесс создания проекта ONNX с нуля, настройки примера из репозитория Microsoft, устранения неполадок и изучения других проектов Github, связанных с ONNX. Затем они тестируют привязку ONNX с использованием GPT2 и CUDA, выражая заинтересованность в дальнейшем изучении привязок среды выполнения ONNX для Rust в будущем. Докладчик отмечает универсальность и мобильность ONNX и видит в нем хороший инструмент для экспериментов и создания более масштабных проектов в будущем.

  • 00:00:00 В этом разделе спикер представляет ONNX — открытый стандарт взаимодействия машинного обучения, который позволяет использовать множество различных фреймворков и ускорителей для логического вывода об облачных сервисах. Они упоминают о наличии безопасной оболочки для среды выполнения ONNX с кроссплатформенным высокопроизводительным ускорителем вывода и обучения машинного обучения. Они также подчеркивают переносимость, связанную с ONNX, поскольку он может работать на всех различных платформах, и демонстрируют, как создать новый проект ONNX с нуля, используя примеры из Microsoft Branch. Докладчик отмечает, что, поскольку над ONNX активно работают и постоянно интегрируют, он предоставляет хороший инструмент для экспериментов с машинным обучением.

  • 00:05:00 В этом разделе видео ведущий переходит на веб-сайт ONNX, чтобы получить последнюю версию и создать среду выполнения ONNX. Они также показывают, как скопировать и настроить пример из репозитория Microsoft и добавить make-файл. Кроме того, они интегрируют в код подписчика трассировки и gbt и добавляют модель выжимной сети. Ведущий сталкивается с некоторыми ошибками, но устраняет их, проверяя предыдущий пример и проверяя наличие правильных моделей.

  • 00:10:00 В этом разделе спикер устраняет проблему, когда он пытается использовать определенную версию ONNX, но сталкивается с ошибками. Они пробуют различные способы решения проблемы, такие как копирование работающего примера и пересборка проекта, но ни один из них не работает. В конце концов, они находят в документации ONNX более старый пример, который работает с нужной им версией. Они заменяют модель и могут успешно скомпилировать и запустить программу. В целом в этом разделе подчеркивается важность тщательной проверки зависимостей и готовности пробовать разные решения при отладке.

  • 00:15:00 В этом разделе видео спикер обсуждает ограничения базового примера ONNX «Hello world» и предполагает, что было бы полезнее иметь пример, загружающий изображение и управляющий им. Они выделяют некоторые другие проекты Github, связанные с ONNX, такие как Rust Code Search и Track ONNX, которые имеют более продвинутые функции, и проявляют интерес к их опробованию. Кроме того, они изучают проект GPT-RS, который позволяет использовать модели GPT2 с CUDA, и объясняют, как его потенциально можно использовать для управления данными изображения.

  • 00:20:00 В этом разделе пользователь тестирует привязку ONNX, используя GPT2 и CUDA, которые генерируют тестовые выходные данные для завершения кода или завершения текста. Пользователь находит этот пример многообещающим и выражает заинтересованность в дальнейшем изучении привязок среды выполнения ONNX к Rust в будущем. Они резюмируют свой опыт как интересный эксперимент и выражают желание построить что-то более существенное в своей следующей попытке с ONNX.
 

HITNET vs ACVNet Neural Stereo Depth Estimation Comparison (ONNX)(ONNX)



HITNET vs. ACVNet Neural Stereo Depth Estimation (ONNX)

Сравнение моделей оценки глубины стереозвука HITNET и ACVNet в наборе данных Driving Stereo.

Детали вывода модели (NVIDIA 1660 SUPER):
HITNET (640X480): 220 мс
ACVNet (640x384): 480 мс
Ссылки: [Вывод HITNET] https://github.com/ibaiGorordo/ONNX-HITNET-Stereo-Depth-estimation
[Вывод ACVNet] https://github.com/ibaiGorordo/ONNX-ACVNet-Stereo-Depth-Estimation
[Набор данных для стерео] https://drivingstereo-dataset.github.io/

HITNET Vs. ACVNet Neural Stereo Depth Estimation Comparison (ONNX)
HITNET Vs. ACVNet Neural Stereo Depth Estimation Comparison (ONNX)
  • 2022.03.26
  • www.youtube.com
Comparison of the HITNET and ACVNet stereo depth estimation models in the Driving Stereo dataset.Model Inference details (NVIDIA 1660 SUPER):HITNET (640X480)...