Публикации

Превью к эффективному алгоритму удаления элементов из массива

Как эффективно удалить элементы из массива

Работая с массивами, порой приходится удалять элементы, удовлетворяющие некоторым условиям. Порой начинающие программисты используют неэффективный алгоритм с квадратичной сложностью, из-за чего производительность их программы может очень сильно пострадать. В этой статье мы расскажем, как удалять элементы из массива эффективным способом.

Читать далее

Превью к инструкции по установке виртуального окружения virtualenv в Python3

Как настроить виртуальное окружение virtualenv для Python3 (Ubuntu)

Работая над несколькими проектами в Python3 нередко приходится сталкиваться с проблемой конфликта версий устанавливаемых пакетов. Для её решения было придумано виртуальное окружение, настройка которого зачастую заставляет поломать голову. В этой статье мы расскажем вам, как быстро настроить virtualenv для Python3.

Читать далее

Превью к инструкции редактора блок-схем

Как создать блок-схему с помощью нашего онлайн редактора

Недавно мы разработали и добавили на сайт редактор блок-схем. В этой статье вы узнаете, как пользоваться всеми функциями, которые могут казаться неочевидными на первый взгляд, а также узнаете, как упростить себе жизнь при построении блок-схемы.

Читать далее

Превью к статье о создании Windows Forms проекта на C++

Как создать Windows Forms проект на C++

Windows Forms — интерфейс программирования приложений, отвечающий за графический интерфейс пользователя. Windows Forms API не зависит от конкретного языка, благодаря чему проекты можно создавать практически на чём угодно. И если на родном C# проекты быстро и просто создаются, то для создания C++ проекта приходится некоторое время поплясать с бубном.

Читать далее

Превью к статье об установке sublime text

Как установить Sublime Text для работы с C/C++

Sublime Text — текстовый редактор с огромным надором дополнительных возможностей. Поддерживает различные языки программирования и умеет подсвечивать их синтаксис. А используя дополнительные расширения, можно добиться максимально комфортной и удобной работы и даже на время забыть, что используешь обычный текстовый редактор, а не интегрированную среду разработки вроде Visual Studio или Eclipse. В этой статье мы расскажем, как установить Sublime text на компьютер и настроить его для комфортной работы с языками C и C++.

Читать далее

Превью к статье о создании свёрточной сети с нуля

Свёрточная нейронная сеть с нуля. Часть 4. Полносвязный слой.

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

Читать далее

Превью к статье о создании свёрточной сети с нуля

Свёрточная нейронная сеть с нуля. Часть 3. Активационный слой.

В прошлой статье мы создали слой пулинга и рассмотрели различные его типы. Пришло время поближе познакомиться с активационными слоями, их предназначением, а также рассмотреть различные активационные функции и описать общий алгоритм прямого и обратного распространения.

Читать далее

Превью к статье о создании свёрточной сети с нуля

Свёрточная нейронная сеть с нуля. Часть 2. Слой подвыборки.

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

Читать далее

Превью к статье о создании свёрточной сети с нуля

Свёрточная нейронная сеть с нуля. Часть 1. Свёрточный слой.

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

Читать далее

Превью к статье о создании свёрточной сети с нуля

Свёрточная нейронная сеть с нуля. Часть 0. Введение.

Свёрточная нейронная сеть — специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном и нацеленная на эффективное распознавание образов. Данной архитектуре удаётся гораздо точнее распознавать объекты на изображениях, так как, в отличие от многослойного персептрона, учитывается двухмерная топология изображения. При этом свёрточные сети устойчивы к небольшим смещениям, изменениям масштаба и поворотам объектов на входных изображениях. Во многом, именно поэтому архитектуры, основанные на свёрточных сетях, до сих пор занимают первые места в соревнованиях по распознаванию образов, как, например, ImageNet.

Читать далее