Публикации

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

Превью к статье о передаче аргументов командной строки в Visual Studio

Как задать аргументы командной строки в Visual Studio. Передача аргументов командной строки в Visual Studio.

Иногда нужно, чтобы программа выполняла разные действия в зависимости от заданных параметров при запуске, для этого используется механизм аргументов командной строки. К сожалению, не очень очевидно, каким образом это делать в Visual Studio. В этой статье мы покажем, как задать аргументы командной строки в студии.

Читать далее

Превью к статье о написании нейронной сети прямого распространения

Пишем нейросеть прямого распространения с нуля. Как создать свою нейросеть.

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

Читать далее

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

Как установить компилятор gcc / g++ для Windows.

Пользоваться IDE для написания программ на C/C++, конечно, удобно, но иногда требуется использовать консоль и компилятор gcc, с установкой которого порой возникают проблемы. В нашей статье вы узнаете, как быстро и легко установить на свой компьютер компилятор GNU GCC

Читать далее

Превью к статье о правилах написания качественного кода

Правила оформления качественного кода. Как правильно оформлять код.

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

Читать далее

Превью к статье о создании длинной вещественной арифметики на C++

Длинная вещественная арифметика. Пишем свои вещественные числа на C++

У вас бывало так, что при попытке подсчитать какую-нибудь математическую константу с достаточно большой точностью (например, с помощью вычисления суммы ряда), вам этого всё равно не удавалось? Это происходит из-за того, что встроенные типы данных для выполнения операций с вещественными числами имеют свои ограничения как на минимальные с максимальными значения, так и на количество допустимых знаков после запятой. В этой статье мы расскажем вам, как написать свои собственные вещественные числа без ограничений!

Читать далее

Превью к статье о том, как создать меню для консольного приложения на C/C++

Как создать меню в консольном приложении на C или C++

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

Читать далее

Превью к статье о том, как считать строку произвольной длины

Эффективное получение строки произвольной длины на C и C++

Решая различные задачи по программированию, нередко сталкиваешься с необходимостью ввода произвольной строки. Хорошо, если в задании указывается ограничение на максимальное количество символов, а если нет? Что делать, если нужно получить динамическую строку неопределённого заранее размера?

Читать далее

Превью к статье о том, как исправить русский язык в visual studio

Русский язык в Visual Studio. Что делать, если ничего не помогает?

При написании программ в среде Visual studio иногда возникает необходимость вывода текста на русском языке. Казалось бы, что тут сложного? Берёшь и выводишь! А вот нет, иначе бы не было кучи форумов и страничек в интернете с этой проблемой. А проблема заключается в кодировке, причём все сайты пишут работающие способы, но, к сожалению, далеко не у всех. В этой статье мы расскажем вам о том, как действительно нужно исправлять эту проблему.

Читать далее

Превью к статей о создании проекта в visual studio

Как создать C/C++ проект в Visual Studio

Visual Studio - одна из замечательнейших IDE для написания C/C++ кода. В ней пишут многие программисты и многие учебные заведения используют её для обучения программированию, а потому будет полезно знать, как создавать в ней новый проект для разработки своей C/C++ программы.

Читать далее

Превью к статье о поиске простого числа по его номеру

Как узнать простое число по его номеру

Все знают, как проверить число на простоту, как найти простые числа из интервала, но что делать если нужно найти простое число по его номеру?

Читать далее

Описание класса BigInt

Длинная арифметика. Как оперировать числами, не помещающимися ни в один из числовых типов

В языках C и C++ есть два основных целых числовых типа: int и long, обычно имеющие размеры соответственно 32 и 64 байта. Для повседневных вычислений, не требующих большого числа цифр в числах эти типы отлично подходят. С помощью типа long факториал двадцати легко вычисляется, а вот факториал двадцати одного в него уже не влезет. Что же делать, если нужно получить значения превышающие ограничение типов данных?

Читать далее

Visual Studio unsafe error скриншот

Избавляемся от ошибки "This function or variable may be unsafe" в Visual Studio

Компилятор в Visual Studio сильно отличается от стандартных, из-за чего при написании кода на C или C++ часто возникают ошибки безопасности стандартных функций scanf(), fopen(), sscanf() и аналогичным. В этой статье мы научимся избавляться от них простым способом.

Читать далее

Защита от дурака

Защита от дурака. Ввод числовых типов данных в C/C++ с проверкой на корректность

Большинство программ, должны взаимодействовать с пользователем посредством ввода определённых данных, будь то ФИО, рост, вес для внесения в базу данных или геометрические размеры какого-то объекта. Все эти данные вводит человек, а значит ввести можно всё, что угодно. Что выдаст программа, если вместо требуемого ей возраста пользователь напишет слово? Скорее всего программа аварийно завершится, если в ней не предусмотрена

Читать далее