⚡ Forward pass YOLOv11 — готов! За неделю с лишним закончил сквозной forward pass для модели YOLOv11 на Adept! 🚀 Добил тензорный движок до состояния, когда его можно использовать для реальных нейросетей. Основные изменения — по коммитам: 🧠 Core Tensor Operations - N-мерный transpose, concatenation, stacking — теперь и на CPU, и на Vulkan; - chunk / split с автоградом; - софтмакс на произвольной размерности с autograd; 🔧 Backend и Python-биндинги - reshape и view теперь принимают вариадик (можно писать view(1, -1, 4) как в PyTorch); - новые биндинги для тензоров и параметров Linear/Conv2d; - переработал контейнеры — Sequential, ModuleList стали ближе к torch; 📦 Neural Networks & Models - починил перенос внутренних индексов в MaxPool2d между устройствами; - адаптировал модель YOLO под обновлённое API тензоров. 🧩 Что было самым сложным Главная боль — изначально я не заложил в тензор полноценную поддержку slices, то есть смещения и шагов (strides). И реализовал базовые операции transpose, concat, stack только для одномерных случаев (по сути, только dim=1). Этого хватало для простых экспериментов, но для полноценного YOLO с многомерными тензорами потребовалась поддержка произвольных размерностей. Если бы я добавил strides с самого начала, то реализация этих операций и chunk / split для произвольных размерностей была бы существенно проще через использование slices и ядер типа scatter и gather. Теперь всё на месте и операции работают для любых размерностей — код стал проще и единообразнее. По биндингам — их тоже пришлось расширять, потому что без полноценного Python API удобный интерфейс не построить. Хотелось, чтобы модель на Adept писалась так же естественно, как на PyTorch и NumPy. Вроде получилось. 🎯 Что дальше Следующая остановка — функция потерь и цикл тренировки. Нужно: - реализовать loss (скорее всего, комбинация box + cls + dfl, как в оригинальном YOLO); - собрать тренировочный пайплайн с батчами. Дальше — больше. Всем удачи в ваших проектах! 💪 #YOLOv11 #Adept #TensorEngine #MachineLearning #PythonBindings