• Вычисления на GPU – зачем, когда и как. Плюс немного тестов

    Всем давно известно, что на видеокартах можно не только в игрушки играть, но и выполнять вещи, никак не связанные с играми, например, нейронную сеть обучить, криптовалюту помайнить или же научные расчеты выполнить. Как так получилось, можно прочитать тут, а я хотел затронуть тему того, почему GPU может быть вообще интересен рядовому программисту (не связанному с GameDev), как подступиться к разработке на GPU, не тратя на это много времени, принять решение, нужно ли вообще в эту сторону смотреть, и «прикинуть на пальцах», какой профит можно получить. 


    Читать дальше →
  • Создание бота для участия в AI mini cup. Опыт применения GPU


      Продолжение статьи1 и статьи 2.


      Ниже под катом, расскажу об опыте автора по использованию GPU для расчетов, в том числе в рамках создания бота для участия в AI mini cup. Но скорее это эссе на тему GPU.


      -Имя у вас волшебное…
      -Знаете что, Джоэл?.. Волшебство уходит...

      Читать дальше →
    • Простой интерпретатор Lisp на Umka

        Разработка моего статически типизированного скриптового языка Umka вошла в ту стадию, когда потребовалась проверка языковых возможностей на более сложных примерах, чем скрипты в пару десятков строк. Для этого я решил реализовать на своём языке интерпретатор Lisp. На это меня вдохновил педагогический эксперимент Роба Пайка, одного из создателей языка Go. Недавно Пайк опубликовал маленький интерпретатор Lisp на Go. Особенно впечатлило замечание Пайка, что описание интерпретатора заключено на одной странице 13 древнего руководства по Lisp 1.5. Учитывая синтаксическое родство Umka и Go, было трудно не поддаться соблазну построить такой интерпретатор на Umka, но не буквальным переносом кода Пайка, а полностью заново, от основ. Надеюсь, знатоки Lisp и функциональных языков простят мне наивное изумление от соприкосновения с прекрасным.

        Читать далее
        • +16
        • 2.5k
        • 2
      • Логика сознания. Часть 1. Волны в клеточном автомате

          Начнем разговор о мозге с несколько отвлеченной темы. Поговорим о клеточных автоматах. Клеточный автомат – это дискретная модель, которая описывает регулярную решетку ячеек, возможные состояния ячеек и правила изменений этих состояний. Каждая из ячеек может принимать конечное множество состояний, например, 0 и 1. Для каждой из ячеек определяется окрестность, задающая ее соседей. Состояние соседей и собственное состояние ячейки определяют ее следующее состояние.
          Наиболее известный клеточный автомат – это игра «Жизнь». Поле в игре «Жизнь» состоит из ячеек. Каждая ячейка имеет восемь соседей. Задается начальная комбинация. Затем начинается смена поколений. Если у занятой ячейки два или три занятых (живых) соседа, то ячейка продолжает жить. Если соседей меньше 2 или больше 3, то ячейка умирает. Когда у пустой ячейки оказывается ровно 3 соседа в ней зарождается жизнь. Задав произвольную начальную комбинацию можно пронаблюдать ее эволюцию.
          Читать дальше →
        • Машинный анализатор. Часть 1. Волновые нейроны


          Вступление


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

          Читать дальше →
        • Как работает доказательство Гёделя

          • Translation

          Его теоремы о неполноте разгромили поиск математической теории всего. Почти сто лет спустя мы всё ещё пытаемся осмыслить последствия этого.




          В 1931 году австрийский логик Курт Гёдель провернул, вероятно, один из самых потрясающих интеллектуальных трюков в истории.

          Математики той эпохи искали неколебимые основы математики: набор базовых фактов, аксиом, которые были бы непротиворечивыми и полными, играя роль строительных блоков всех математических истин.

          Однако шокирующие теоремы Гёделя о неполноте, опубликованные им всего лишь в 25-летнем возрасте, разбили эту мечту. Он доказал, что любой набор аксиом, который вы можете предложить на роль основы математики, неизбежно будет неполным. Всегда найдутся истинные утверждения, касающиеся чисел, которые невозможно будет доказать при помощи этих аксиом. Он также показал, что ни один набор аксиом нельзя использовать для доказательства их собственной непротиворечивости.
          Читать дальше →
        • Книга «Обработка естественного языка в действии»

            imageПривет, Хаброжители! Мы издали практическое руководство по обработке и генерации текстов на естественном языке. Книга снабжена всеми инструментами и методиками, необходимыми для создания прикладных NLP-систем с целью обеспечения работы виртуального помощника (чат-бота), спам-фильтра, программы — модератора форума, анализатора тональностей, программы построения баз знаний, интеллектуального анализатора текста на естественном языке или практически любого другого NLP-приложения, какое только можно себе представить.

            Книга ориентирована на Python-разработчиков среднего и высокого уровня. Значительная часть книги будет полезна и тем читателям, которые уже умеют проектировать и разрабатывать сложные системы, поскольку в ней содержатся многочисленные примеры рекомендуемых решений и раскрываются возможности самых современных алгоритмов NLP. Хотя знание объектно-ориентированного программирования на Python может помочь создавать лучшие системы, для использования приводимой в этой книге информации оно не обязательно.
            Читать дальше →
          • Декодируем JPEG-изображение с помощью Python

            • Translation

            Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется алгоритм сжатия JPEG. К концу статьи вы будете гораздо лучше понимать, как этот алгоритм сжимает данные и как написать код распаковки на Python. Мы не будем рассматривать все нюансы формата JPEG (например, прогрессивное сканирование), а поговорим только о базовых возможностях формата, пока будем писать свой декодер.
            Читать дальше →
          • Запуск услуги IPTV на сети интернет-провайдера

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

              Чтобы запустить на своей сети дополнительную услугу интерактивного телевидения на базе технологии IPTV, оператору необходимо определиться с тремя вопросами.



              Читать дальше →
              • +4
              • 11.4k
              • 2
            • Typographic UI – новый путь развития пользовательских интерфейсов

              Typographic UI – новая концепция дизайна, философия которой выражается тремя словами: интерфейс есть текст.

              До последнего времени все концепции пользовательских интерфейсов
              Читать дальше →
            • Камеры глубины — тихая революция (когда роботы будут видеть) Часть 2



                В первой части этого текста мы рассмотрели камеры глубины на основе структурного света и измерения round-trip задержки света, в которых в основном применяется инфракрасная подсветка. Они отлично работают в помещениях на расстояниях от 10 сантиметров до 10 метров, а главное — весьма дешевы. Отсюда массовая волна их текущего применения в смартфонах. Но… Как только мы выходим на улицу, солнце даже сквозь облака засвечивает инфракрасную подсветку и их работа резко ухудшается. 

                Как говорит Стив Бланк (по другому поводу, впрочем): «Хотите успеха — выходите из здания». Ниже речь пойдет про камеры глубины, работающие вне помещений. Сегодня эту тему сильно двигают автономные автомобили, но, как мы увидим, не только.


                Источник: Innoviz Envisions Mass Produced Self-Driving Cars With Solid State LiDAR

                Итак, камеры глубины, т.е. устройства снимающие видео, в каждом пикселе которого расстояние до объекта сцены, работающие при солнечном свете!

                Кому интересно — добро пожаловать под кат!
                Читать дальше →
              • Многомерные графики в Python — от трёхмерных и до шестимерных

                • Translation
                • Tutorial

                Примеры многомерных графиков

                Введение


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


                Plotly — это питоновская библиотека с открытым исходным кодом для разнообразной визуализации, которая предлагает гораздо больше настроек, чем известные matplotlib и seaborn. Модуль устанавливается как обычно — pip install plotly. Его мы и будем использовать для рисования графиков.


                Давайте подготовим данные


                Для визуализации мы используем простые данные об автомобилях от UCI (Калифорнийский университет в Ирвине — прим. перев.), которые представляют собой 26 характеристик для 205 машин (26 столбцов на 205 строк). Для визуализации шести измерений мы возьмём такие шесть параметров.


                Здесь показаны только 4 строки из 205

                Загрузим данные из CSV с помощью pandas.


                import pandas as pd
                data = pd.read_csv("cars.csv")

                Теперь, подготовившись, начнем с двух измерений.

                Читать дальше →
                • +25
                • 22.8k
                • 2
              • Создан язык программирования клеток с помощью молекул ДНК



                  Инженеры из университета Вашингтона разработали структурированный набор инструкций для программирования химических реакций в лабораторной среде или живой клетке с помощью молекул ДНК. Наличие такого языка должно помочь в проектировании сложных молекулярных структур с нужными свойствами.
                  Читать дальше →
                • История MdlVis, редактора моделей Warcraft III

                  MdlVis – кривой, но всё же довольно популярный редактор моделей для WarcraftIII. Редактирование мешей, текстурирование, работа со скелетом, расстановка ключевых кадров, создание анимаций, импорт и слияние моделей – и всё это в единственном файле весом 500Кб. К тому же MdlVis был единственной утилитой, способной конвертировать модели из World of Warcraft в формат WarcraftIII.
                  История редактора – под катом.
                  Читать дальше →
                • Фракталы в простых числах



                  Я обнаружил этот фрактал, когда разглядывал интерференцию волн на поверхности речки. Волна движется к берегу, отражается и накладывается сама на себя. Есть ли порядок в тех узорах, которые создаются волнами? Попробуем найти его. Рассмотрим не всю волну, а только вектор ее движения. «Берега» сделаем гладкими, для простоты эксперимента.

                  Эксперимент можно провести на обычном листке в клеточку из школьной тетради.
                  Читать дальше →
                • Математическая модель общения

                    Я не собираюсь строить здесь полную теорию. Не будет даже собственно математики. Хочу лишь отметить актуальность и указать пару математических концептов, мне кажется хорошо подходящих для описания определенных аспектов сетевого общения. Иначе говоря, я хотел бы просто инициировать тему.

                    Для начала, как на словах выглядит процесс, который мы хотим описать — людей захватывает определенная тема, обсуждение, там идет довольно интенсивное и довольно непредсказуемое взаимодействие, в результате которого происходит случайный переход к другой теме, и всё повторяется. Набор тем более-менее ограничен, поэтому имеет место некая цикличность. Таким образом, процесс напоминает броуновское движение, для которого есть развитая теория. За одним исключением — захват общего внимания определенной темой выглядит как попадание фокуса внимания в странный аттрактор.
                    Читать дальше →