TGViewer
OK ML OK ML @okmlai · 978 subscribers
Post #18 357
Netron - рентген для ML-моделей. Почему должен быть в вашем тулбоксе? 🧰

🩻Netron - это быстрый кроссплатформенный визуализатор графов ИИ-моделей. Показывает структуру вычислительного графа, входы/выходы узлов, формы тензоров, типы данных и атрибуты слоёв. Работает прямо в браузере на netron.app или как настольное приложение.

Граф скажет больше, чем 1000 логов. Удобно для дебага экспорта (ONNX/TorchScript/TFLite/Core ML), ревью архитектуры и «почему всё рушится на shape (N, ?)».

Пройдемся по графу с приложенного рисунка (пример на feastconv_Opset16.onnx - графовой нейронной сети, использующей современный механизм внимания (FeaStConv) для анализа данных, представленных в виде графов.) (вообще ONNX Model Zoo - курируемая коллекция предобученных моделей в формате ONNX из популярных репозиториев (timm, torchvision, transformers), распространяемых через Git LFS. Есть валидированные модели для CV, NLP, генеративки и графовых задач, с тестовыми данными и коротким кодом для проверки. Точно полезно для тестирования соственных тулов, почекать на безопасность, может что-то дообучить и тд)).

🎫Входы:
— x: 2708×1433 - признаки узлов
— edge_index: 2×2708 - список рёбер (src/dst)

⛓️‍💥Ключевые цепочки:
— Подготовка рёбер: Gather(indices=0/1) > Equal > Not > NonZero - формируем маску (напр., без self-loops) и позиции активных рёбер. Дальше ConstantOfShape/Expand/Tile/Concat - выравнивание форм для широковещания.
— Сообщения/классификация узлов: MatMul(1433×7) > Add >Softmax - линейная проекция признаков x и нормализация по классам (7). Reshape вокруг - приведение осей к нужной форме перед агрегацией.
— Агрегация по графу: ScatterElements - «рассыпаем» сообщения по целевым узлам согласно edge_index. ReduceSum - суммируем вклад соседей; Div - нормализация (аналог degree-norm). В самом конце Add(B=7) - смещение для логитов.

Что можно легко проверить:
— Совпадают ли формы до/после MatMul (должно быть …×1433 → …×7)?
— Есть ли избыточные Reshape/Transpose вокруг Softmax?
— Корректно ли собирается shape через Shape/Gather/Concat (без необъяснимых констант)?
— ScatterElements принимает индексы нужной размерности (иначе легко получить какую-то мешанину)?

Что можно улучшить?
1. Срезать «лес» формо-операций. Много Reshape/Squeeze/Unsqueeze/Expand/Tile/Concat. 👉 onnx-simplifier (с динамикой входов) - выкидывает лишнее и ускоряет.
2. Tile > Broadcasting. Там, где стоит Tile + Concat/Expand, сформировать тензор с размерностью 1 и положиться на широковещание - меньше памяти и копирований.

5 сценариев, где Netron реально спасает
1. Shape-баг после экспорта
Открыл > клик по проблемному узлу > сразу видно, где «сломалась» размерность (например, N×D вместо N×7). Часто причиной оказываются лишние Reshape/Transpose - Netron их выдаёт наглядно.
2. Проверка логитов и классов Быстро понять, сколько классов на выходе: найди Softmax/последний MatMul и посмотри форму выхода (например, …×7).
3. Валидация динамических осей
4. Оптимизация/понимание «лишних» операций
Если видишь «лес» из Reshape/Squeeze/Unsqueeze/Expand, это сигнал упрощать пайплайн до экспорта (или пропустить через onnx-simplifier)! В примере наглядно показан такой косяк в модели.
5. Ревью архитектуры и документация. Не знаешь, как пояснить руководителю за модель?)
Скрин графа - понятная диаграмма для коллег/мануала. Особенно удобно сравнивать две версии модели «глазами».
  • 🔥 11
  • ❤ 7
  • 👍 6
  • 👀 2
More from @okmlai
  1. Sep 23, 2026Зачем писать стилер, если у пользователя уже есть ИИ-ассистент с доступом ко всему? Патрик…
  2. Sep 21, 2026ИИ получил доступ к своим весам. ЧБД? 16 сентября Irregular опубликовала исследование agen…
  3. Sep 14, 202610 сентября Anthropic опубликовала Detecting and countering misuse of AI — отчёт о злоупот…
  4. Sep 11, 2026Репозиторий недели. Mantis разделить нельзя объединять 📬 У Google есть Mantis — набор нав…
  5. Sep 9, 2026Пароль сменили. Сессии закрыли. А чужие инструкции остались в памяти ИИ. Именно такой сцен…
  6. Sep 4, 2026AI-агенты начали действовать вне инструкций. Вот что нужно знать разработчикам ⤵️ Недавно…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →