CNTK
CNTK (Microsoft Cognitive Toolkit) - это набор инструментов с открытым исходным кодом для глубокого обучения, разработанный корпорацией Microsoft. Он позволяет создавать и обучать нейронные сети с помощью C++. CNTK обладает рядом преимуществ, делающих его привлекательным выбором для задач глубокого обучения.
#для_продвинутых
CNTK (Microsoft Cognitive Toolkit) - это набор инструментов с открытым исходным кодом для глубокого обучения, разработанный корпорацией Microsoft. Он позволяет создавать и обучать нейронные сети с помощью C++. CNTK обладает рядом преимуществ, делающих его привлекательным выбором для задач глубокого обучения.
#для_продвинутых
oneDNN
oneDNN — это высокопроизводительная библиотека с открытым исходным кодом, предназначенная для оптимизации машинного обучения и приложений глубокого обучения.
https://github.com/oneapi-src/oneDNN
#для_продвинутых
oneDNN — это высокопроизводительная библиотека с открытым исходным кодом, предназначенная для оптимизации машинного обучения и приложений глубокого обучения.
https://github.com/oneapi-src/oneDNN
#для_продвинутых
Kaldi
Kaldi — это бесплатная модульная библиотека с открытым исходным кодом для обработки речи, состоящая из различных компонентов, которые можно комбинировать для создания различных приложений.
#для_продвинутых
Kaldi — это бесплатная модульная библиотека с открытым исходным кодом для обработки речи, состоящая из различных компонентов, которые можно комбинировать для создания различных приложений.
#для_продвинутых
Evolving Objects
Evolving Objects (EO) — это библиотека эволюционных вычислений (ЭВ) с открытым исходным кодом, написанная на C++. Она предназначена для облегчения разработки эвристических алгоритмов для решения задач оптимизации и поиска.
EO предоставляет набор классов и компонентов, которые можно использовать для создания различных типов ЭВ-алгоритмов, таких как генетические алгоритмы, эволюционные стратегии и дифференциальная эволюция.
#для_продвинутых
Evolving Objects (EO) — это библиотека эволюционных вычислений (ЭВ) с открытым исходным кодом, написанная на C++. Она предназначена для облегчения разработки эвристических алгоритмов для решения задач оптимизации и поиска.
EO предоставляет набор классов и компонентов, которые можно использовать для создания различных типов ЭВ-алгоритмов, таких как генетические алгоритмы, эволюционные стратегии и дифференциальная эволюция.
#для_продвинутых
BTSK
BTSK (Behavior Tree Starter Kit) — это бесплатная библиотека с открытым исходным кодом, написанная на C++, которая помогает разработчикам создавать системы искусственного интеллекта (ИИ) на основе поведенческих деревьев.
Поведенческие деревья — это иерархическая структура, которая представляет собой набор действий, которые может выполнять агент ИИ. BTSK упрощает создание и управление этими деревьями, предоставляя классы и функции для создания различных типов узлов деревьев.
#для_продвинутых
BTSK (Behavior Tree Starter Kit) — это бесплатная библиотека с открытым исходным кодом, написанная на C++, которая помогает разработчикам создавать системы искусственного интеллекта (ИИ) на основе поведенческих деревьев.
Поведенческие деревья — это иерархическая структура, которая представляет собой набор действий, которые может выполнять агент ИИ. BTSK упрощает создание и управление этими деревьями, предоставляя классы и функции для создания различных типов узлов деревьев.
#для_продвинутых
Дерево отрезков. Очень мощная структура данных, которая позволяет делать много разных операций над массивом чисел.
Смотреть статью
Смотреть статью
Хабр
Дерево отрезков
Всем привет. В этой статье я расскажу про дерево отрезков. Дерево отрезков - это очень мощная структура данных, которая позволяет делать много разных операций над массивом чисел. Я постараюсь по...
В видеопроекте Road to Highload разработчик ядра Яндекс Диска Андрей Колнооченко рассказывает, как проектировать и развивать базы данных так, чтобы они оставались стабильными и быстрыми даже при росте QPS и объёма данных.
Разберём реальные примеры и обсудим типичные ошибки и подходы, которые помогают избежать проблем с производительностью и консистентностью. Особое внимание уделим согласованности кода и данных в БД для предотвращения проблем с race conditions, которые часто возникают при росте нагрузки.
Road to Highload — это цикл видео от Яндекс 360 о том, как строятся системы, которыми ежедневно пользуются миллионы людей и тысячи компаний. Здесь говорят о highload и отказоустойчивости не по учебникам, а на основе многолетнего опыта разработки.
Смотрите проект, чтобы узнать, как создаются одни из крупнейших облачных сервисов в России:
Реклама. ООО «Яндекс». ИНН 7736207543
Please open Telegram to view this post
VIEW IN TELEGRAM
Объясните разницу между глубоким и поверхностным копированием и приведите пример, когда каждый тип копирования может быть предпочтительнее.
Глубокое копирование создаёт новый объект, копируя все поля источника и рекурсивно создавая копии всех объектов, на которые эти поля ссылаются. Таким образом, все ссылки в копии ведут на отдельные объекты, не связанные с оригиналом. Поверхностное копирование создаёт новый объект, но копирует только значения полей на верхнем уровне. Если поля являются ссылками на другие объекты, то копия будет ссылаться на те же объекты, что и исходный.
Глубокое копирование предпочтительно, когда нужно полностью изолировать копию от оригинала, чтобы изменения в одном не влияли на другой. Поверхностное копирование эффективно, когда нужно сэкономить память или время на копирование, и если объекты, на которые есть ссылки, не изменяются или их изменения допустимы в обоих экземплярах.
#вопросы_с_собеседований
Глубокое копирование предпочтительно, когда нужно полностью изолировать копию от оригинала, чтобы изменения в одном не влияли на другой. Поверхностное копирование эффективно, когда нужно сэкономить память или время на копирование, и если объекты, на которые есть ссылки, не изменяются или их изменения допустимы в обоих экземплярах.
#вопросы_с_собеседований
🧑🏻💻Асинхронность в C++ всегда была испытанием на зрелость. Потоки, мьютексы, коллбеки — и тысячи строк кода, чтобы просто дождаться результата. Но в C++20 всё изменилось: корутины убирают боль ручного управления потоками.
На открытом уроке разберём, как работает новая модель асинхронности в C++: без громоздких конструкций и перегрузок по CPU. Вы поймёте, как устроены корутины, где их применять и почему они стали стандартом в C++20 и C++23. На практике создадим корутины-генераторы и обсудим их преимущества перед классическими потоками.
Если вы уже чувствуете, что ваш C++ проект тонет в callback hell или не масштабируется под нагрузкой — этот вебинар поможет понять, как писать современный, чистый и асинхронный код.
🔥11 декабря в 20:00 МСК. Открытый урок проходит в преддверии старта курса «C++ Developer. Professional». Присоединяйтесь и узнайте, как сделать асинхронность естественной частью вашего кода: https://otus.pw/jPll/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке разберём, как работает новая модель асинхронности в C++: без громоздких конструкций и перегрузок по CPU. Вы поймёте, как устроены корутины, где их применять и почему они стали стандартом в C++20 и C++23. На практике создадим корутины-генераторы и обсудим их преимущества перед классическими потоками.
Если вы уже чувствуете, что ваш C++ проект тонет в callback hell или не масштабируется под нагрузкой — этот вебинар поможет понять, как писать современный, чистый и асинхронный код.
🔥11 декабря в 20:00 МСК. Открытый урок проходит в преддверии старта курса «C++ Developer. Professional». Присоединяйтесь и узнайте, как сделать асинхронность естественной частью вашего кода: https://otus.pw/jPll/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Что такое stack overflow?
stack overflow (переполнение стека) — это программная ошибка, которая возникает, когда программа пытается использовать больше памяти на стеке, чем доступно. Стэк — это область памяти, используемая для хранения локальной информации функций, таких как параметры, локальные переменные и возвращаемые значения.
Когда функция вызывается, ее адрес возврата сохраняется на стеке. Затем, когда функция завершается, ее адрес возврата восстанавливается из стека, и управление передается следующей функции в стеке вызовов.
Когда происходит переполнение стека, программа аварийно завершается. Это может привести к потере данных или даже к повреждению системы.
stack overflow (переполнение стека) — это программная ошибка, которая возникает, когда программа пытается использовать больше памяти на стеке, чем доступно. Стэк — это область памяти, используемая для хранения локальной информации функций, таких как параметры, локальные переменные и возвращаемые значения.
Когда функция вызывается, ее адрес возврата сохраняется на стеке. Затем, когда функция завершается, ее адрес возврата восстанавливается из стека, и управление передается следующей функции в стеке вызовов.
Когда происходит переполнение стека, программа аварийно завершается. Это может привести к потере данных или даже к повреждению системы.
std::weak_ordering
#для_продвинутых
std::weak_ordering — это тип в C++, который введен в стандарте C++20 для использования в контексте трехсторонних операторов сравнения (таких как операторы <=> и ==). Этот тип предоставляет четыре значения: std::weak_ordering::equivalent, std::weak_ordering::less, std::weak_ordering::greater и std::weak_ordering::unordered.std::weak_ordering используется для сравнения объектов, когда сравнение может быть неоднозначным или невозможным, но при этом необходимо учесть отношение порядка. Например, при сравнении чисел с плавающей точкой, если одно или оба числа являются NaN (Not a Number), то результат сравнения может быть неопределенным. В таких случаях std::weak_ordering может использоваться для предоставления информации о том, являются ли объекты эквивалентными, меньшими, большими или не сравнимыми.#для_продвинутых
Пространство имен
Пространство имен (namespace) в C++ представляет собой механизм для организации кода и предотвращения конфликтов имен (например, имен переменных, функций и т.д.). Пространства имен помогают разделить глобальное пространство имен на более узкие области, что улучшает читаемость кода и поддерживает его структурирование.
В этом примере
#для_начинающих
Пространство имен (namespace) в C++ представляет собой механизм для организации кода и предотвращения конфликтов имен (например, имен переменных, функций и т.д.). Пространства имен помогают разделить глобальное пространство имен на более узкие области, что улучшает читаемость кода и поддерживает его структурирование.
В этом примере
MyNamespace — это пространство имен, которое содержит функцию myFunction. Чтобы вызвать функцию из этого пространства имен, используется оператор разрешения области ::.#для_начинающих
Как не ошибиться с выбором работы в бигтехе
Выбирать компанию и проект, с которыми хочется работать, — тот ещё квест. Всегда есть риск попасть на поддержку древнего легаси вместо интересного хайлоада.
В Яндекс Еде от этого страхует буткемп: новичок может попробовать поработать в разных командах, пощупать разные задачи и потом выбрать, где ему интереснее.
Олег Табота, руководитель команды общих компонентов в Яндекс Еде, написал классную статью, где разобрал весь этот процесс по полочкам.
Что внутри:
🔸 Современный C++ на userver: реальные задачи, а не скучная поддержка.
🔸 Инфраструктура: как сайдкары забирают на себя всю рутину в 200+ сервисах.
🔸 Право на ошибку: как реагирует команда, когда новичок роняет прод.
Рекомендуем почитать, чтобы узнать, как выстроены процессы в современном бигтехе.
🔗 Читать статью
Выбирать компанию и проект, с которыми хочется работать, — тот ещё квест. Всегда есть риск попасть на поддержку древнего легаси вместо интересного хайлоада.
В Яндекс Еде от этого страхует буткемп: новичок может попробовать поработать в разных командах, пощупать разные задачи и потом выбрать, где ему интереснее.
Олег Табота, руководитель команды общих компонентов в Яндекс Еде, написал классную статью, где разобрал весь этот процесс по полочкам.
Что внутри:
🔸 Современный C++ на userver: реальные задачи, а не скучная поддержка.
🔸 Инфраструктура: как сайдкары забирают на себя всю рутину в 200+ сервисах.
🔸 Право на ошибку: как реагирует команда, когда новичок роняет прод.
Рекомендуем почитать, чтобы узнать, как выстроены процессы в современном бигтехе.
🔗 Читать статью
#вопросы_с_собеседований
Что выведет код сверху?
Ответ:
10
Объяснение:
Подобно struct и class, union может иметь методы. Подобно struct и в отличие от class, члены union по умолчанию являются общедоступными.
Поскольку данные-члены объединения совместно используют память, значение b становится таким же, как a.
Что выведет код сверху?
Ответ:
Объяснение:
Подобно struct и class, union может иметь методы. Подобно struct и в отличие от class, члены union по умолчанию являются общедоступными.
Поскольку данные-члены объединения совместно используют память, значение b становится таким же, как a.