Краткий опыт использования ML.NET (Machine Learning Framework от Microsoft)

Пройдя недавно курс по машинному обучению, я отправился на поиски готовых библиотек — в первую очередь — для платформы .NET, так как я именно ее использую на своей работе. Запрос в гугл «Machine Learning + .NET» немедленно дал ссылку на фреймворк ML.NET, который сейчас имеет статус «preview». Здесь вкратце опишу, как я попробовал его использовать для классификации изображений. Создание модели ML.NET, насколько я успел понять, одной из своих целей имеет обеспечение очень высокого уровня абстракции для неискушенных в машинном обучении Читать дальше …

Machine Learning

Недавно я прошел 11-недельный курс Machine Learning на платформе Coursera. Курс великолепен. Чтобы помочь себе вспомнить материал через много лет, я решил написать краткий конспект, состоящий преимущественно из ключевых слов, поэтому текст ниже будет понятен, скорее всего, только тем, кто сам прошел этот курс. Supervised learning algorithms Постановка задачи. Есть входные переменные (x), от которых предположительно зависит выходная переменная (y). Есть набор данных, для которых известны конкретные значения (x) и (y). Цель — найти такую функцию, которая максимально точно будет Читать дальше …

C++ C# Python JavaScript PHP разговорник

Я давно программирую на C++ и C#. Python начал изучать недавно. С JavaScript у меня с давних пор было знакомство, но шапочное, поэтому стал изучать и его. И вот решил составить «разговорник» — удобная штука, чтобы легко было вспоминать материал. Эту необъятную заметку я буду пополнять по мере изучения языков. C++ C# Python 3 JavaScript PHP Расширение файлов .cpp, .h, .hpp .cs .py .js .php Исполняющая среда CPU + OS CLR (Common Language Runtime) Интерпретатор Python: CPython, IronPython, PyPy, Jython Читать дальше …

C++ и среды разработки

Предположим, мы хотим научиться программировать на C/C++. Для этого нам понадобятся следующие вещи: Написать простейший исходный код (программа HelloWorld) Скомпилировать исходный код в исполняемое приложение Запустить приложение (в том числе, в режиме отладки) В чем будем писать исходный код? Текстовый редактор. Сгодится любой текстовый редактор. Но желательно, с подсветкой синтаксиса. Я привык пользоваться Notepad++ (для справки: я — пользователь Windows). Другой редактор, которым я пользуюсь, но для программирования на платформе .NET, это — Visual Studio Code (или сокращенно — VSCode). Читать дальше …

Переход с Visual Studio на VS Code

Если вы используете Microsoft Visual Studio в коммерческих целях, то вам нужно покупать лицензию. Фирма, в которой я работаю, такую лицензию имеет. Однако, почему бы не избавиться от необходимости платить, и не перейти на бесплатные средства разработки? Вот и стали мы переходить… Оказалось, что не так это сложно, в конце концов интегрированная среда разработки (ее платная часть) — это лишь графическая оболочка, которая для своей работы пользуется различными бесплатными утилитами командной строки. Графическую Visual Studio часть можно компенсировать бесплатным редактором Читать дальше …

Тест по программированию на C++ от GeekBrains (средний уровень)

Недавно я завис на портале geekbrains.ru, раздумывая, не поступить ли мне на курс по C++ или по Unity. Решил для развлечения тесты порешать по моим любимым языкам C/C++/C#. Несколько базовых тестов успешно прошел, а дальше забуксовал. И решил проработать проблемные вопросы, а в качестве стимула написать заметку в блог. Итак, поехали. Я немножко переформатировал фрагменты кода, чтобы он лучше воспринимался глазами. Ответы и пояснения иногда привожу прямо в исходном коде тестов в виде комментариев. 1. Что будет выведено на экран Читать дальше …

PowerShell, NuGet & Visual Studio postbuild event (продолжение)

В предыдущей заметке я начал рассказ о том, как я переходил к использованию NuGet package manager и как использовал в связи с этим скрипт PowerShell, чтобы копировать сторонние библиотеки из одного места в другое. Удаление недействительных ссылок Проектов в моем решении очень много. Многие из них ссылаются на одну и ту же стороннюю библиотеку. Сторонние библиотеки у меня живут в папке $(SolutionDir)Lib. С переходом на NuGet значительная часть библиотек перебралась в папку $(SolutionDir)packages. При установке пакета в NuGet вы указываете Читать дальше …

PowerShell, NuGet & Visual Studio postbuild event

На работе я много лет работаю над большим-пребольшим проектом на платформе C#/.NET. В проекте используется ряд сторонних библиотек. Но поскольку я — программист-любитель, я не до сих пор использовал для управления ими package-manager, а просто тупо скачивал архивы с нужными библиотеками с оф. сайтов. Но вот, я решил-таки все решение перевести на использование NuGet package-manager, и в процессе столкнулся с рядом проблем, которые решил при помощи скриптов PowerShell, о чем и расскажу в этой заметке. Почему я решил начать использовать Читать дальше …

Опыт изучения OpenGL — Часть 9 — Uniform Variables & Uniform Blocks

В прошлых заметках речь шла о пространственных преобразованиях и соответствующих матрицах. Преобразования производятся над вершинами 3-хмерного объекта (модели) путем умножения координат вершин на матрицы. Заниматься этим умножением вершин на матрицы должен видеопроцессор, то есть шейдеры, а именно vertex shader. Почему именно видеопроцессор? Потому что вершин очень много, а у видеопроцессора много ядер, поэтому он может выполнить преобразование большого количества вершин гораздо эффективнее, чем это сделает CPU. Когда производится конкретное пространственное преобразование над некоторой моделью, все вершины этой модели умножаются на Читать дальше …

Опыт изучения OpenGL — Часть 8 — Vector maths API

В прошлой заметке я закончил теоретическую часть рассказа про пространственные преобразования в компьютерной графике. Теперь хочу сказать два слова про программирование всего этого на C++. Vector & Matrix Было довольно очевидно, из чего должен состоять API для векторной алгебры в моем проекте. Это должны были быть два класса: Vector и Matrix. Элементами вектора могут быть числа различных типов (скажем, int, float, double и пр.), поэтому очевидно, что классы Vector и Matrix должны были быть шаблонными (тип элемента матрицы/вектора должен быть Читать дальше …