Розробка застосунків за допомогою графа.
Використовуйте Model, коли вам потрібно лише завантажити та запустити один скомпільований архів моделі. Використовуйте Graph, коли ви хочете створити застосунок на основі моделей і вузлів: додавайте загальнодосту пні вхідні та вихідні дані, з’єднуйте повторно використовувані фрагменти, розгалужуйте потоки, об’єднуйте потоки, перевіряйте застосунок і зберігайте або візуалізуйте те, що фактично було запущено.
Концептуальна модель навмисно проста:
| Концепція | Значення |
|---|---|
Model | Завантажений з диска скомпільований архів моделі, наприклад resnet50.tar.gz або yolov8.tar.gz. |
Node | Один етап обробки: вхідний, вихідний, трансформаційний, вихідний, кінцевий, модельний або допоміжний етап. |
Graph | Схема взаємозв’язків компонентів застосунку: які вузли/фрагменти існують і як дані передаються між ними. |
Run | Обробник, який повертається функцією Graph::build() під час виконання: передавання вхідних даних, отримання вихідних даних, збір метрик, зупинка. |
Коротко кажучи:
Graph = what to run
Run = the running instance
Почніть з перегляду сторінок із завданнями, коли вам потрібен коротший шлях:
- Граф навчає створенню контенту.
- Запустіть граф. навчає основам життєвого циклу середовища виконання, роботі з чергами, методам вимірювання та обчисленню пропускної здатності.
- Вузол відображає загальні вузли та групи.
- Тензор і зразок. пояснює структуру корисного навантаження та метаданих.
У більшості випадків код застосунків має використовувати загальнодоступні simaai::neat::Graph та simaai::neat::Run. Не створюйте застосунки з використанням низькорівневих просторів імен реалізації, оскільки вони не призначені для використання клієнтами як API.
Коли мені знадобиться граф?
| Мета | Рекомендований API |
|---|---|
| Запустіть одну модель для одного набору вхідних даних. | Model::run(...) або Model::build(...) |
| Визначте межі вхідних і вихідних даних для моделі застосунку. | Graph |
| Створіть модель із використанням спеціальних вузлів обробки. | Graph::add(...) |
| Використовуйте фрагмент графа в кількох застосунках. | Повернути/передати фрагмент Graph. |
| Налаштуйте декілька входів або виходів. | Назва: nodes::Input(...) / nodes::Output(...) плюс connect(...). |
| Розподіліть один потік даних між кількома споживачами. | graphs::Branch(...) |
| Об’єднайте кілька потоків в один логічний вихід. | graphs::Combine(...) з CombinePolicy |
| Збережіть або візуалізуйте виконану топологію та показники. | save_run_json(run, ...) |