По следам неудачного примера из vectorflow. Часть II. Обучаем нейросеть на 60 000 PPM-файлах

В предыдущей части, мы показали как можно использовать D в качестве скриптового языка, который помог перевести множество изображений из базы данных MNIST в более удобный для разбора формат PPM P6. Несмотря на то, что использовалась одна внешняя библиотека (а именно, разработанная нами ppmformats), код по большей части задействует ресурсы стандартной библиотеки языка и остается простым. […]

Подробнее

По следам неудачного примера из vectorflow. Часть I: конверсия датасетов в удобный формат

MNIST

Порой я, в поисках идей, просматриваю рабочую папку на предмет неудавшихся или провалившихся идей программ, и иногда из отчаяния и безысходности я выбираю то, что перерастет в последствии в нечто захватывающее и интересное…Если говорить более конкретно, то мне попался на глаза наш неудачный эксперимент с нейросетями в библиотеке от Netflix, который закончился весьма плохо, а […]

Подробнее

Библиотека ppmformats. Чему я научился создавая обработчики PortablePixmap форматов

Недавно, я понял, что довольно часто я работаю с D не с домашнего компьютера, а с обычного смартфона. На смартфоне у меня стоит почти та же среда, что и на компьютере (я имею в виду, что на компьютере и смартфоне одинаковый комплект консольных утилит и их настройки так же одинаковы), а это значит, что хочется единообразной […]

Подробнее

Добавляем текст на изображения в dlib

Когда я начал использовать dlib, то столкнулся с необходимостью вставки в изображение некоторого текста. Оказалось, что встроенной в dlib процедуры, которая рисует текст на картинке нет, а она была бы полезна в некоторых практических приложениях: отрисовке графиков функций с подписями осей, визуализации текстовой информации, подготовке диаграмм и иной инфографики. Я думал, с течением времени в […]

Подробнее

Циклические сдвиги и криптопримитив enRUPT

Читая статьи с HabrHabr по одному из самых странных языков программирования (называется J, если кому-то интересно), я встретил в комментариях описание очень простого и компактного алгоритма шифрования под названием enRUPT. Меня заинтересовало то, что этот алгоритм, точнее криптопримитив (элементарную криптографическую операцию) можно описать буквально в несколько строк.

Подробнее

Определить порядок байтов, используемый текущей архитектурой

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

Подробнее

Простой ГПСЧ на базе XorShift256

В этой статье, я покажу простой рецепт для того, чтобы создать собственный генератор псевдослучайных чисел (ГПСЧ) на базе известного алгоритма XorShift256. Данный генератор потребует минимального набора операций, а также задания нескольких констант, инициализирующих ГПСЧ (параметры называются по четырем первым буквам латинского алфавита, и хранятся в виде статического массива ulong[4]). Константы для генератора надо либо подбирать […]

Подробнее

Использование dub для приложений из одного *.d файла

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

Подробнее

Простой генератор целочисленных делителей частоты на D

При создании цифровых устройств на базе микросхем программируемой логики (ПЛИС) часто требуется из входной частоты тактового генератора на плате получить некую другую частоту. Казалось бы с этим с успехом справляются встроенные генераторы на базе PLL, но а что если все такие генераторы уже заняты и нужно как-то из входной частоты получить новую, но при этом […]

Подробнее

Складываем пасьянс Медичи

В этой статье, я попытаюсь объяснить, как мне удалось своими силами создать алгоритм свертки одного из самых загадочных пасьянсов — Пасьянса Медичи. Предупреждаю сразу, в отличии от множества эзотерически настроенных людей, я не склонен думать, что этот пасьянс как-то влияет на события или описывает алгоритм их схождения к некому результату. Я скромный экспериментатор, которому интересна […]

Подробнее