Как стать автором
Обновить
1089.3

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Период
Уровень сложности

Готовим нестандартные данные для нейросети

Время на прочтение8 мин
Количество просмотров4.6K

Сталкивались ли вы когда-либо с проблемой в обучении нейросетей, когда датасет слишком большой, чтобы загрузить его в оперативную память полностью и программа выдает Out-of-Memory Error? Например, при обучении классификатора изображений, у нас нет возможности загрузить все картинки в память до обучения. Даже если это и возможно для игрушечных наборов данных, в реальных задачах объёмы данных измеряются в сотнях, тысячах гигабайт. И мы не можем использовать лишь часть датасета, так как качество обученной модели тоже упадёт. Конечно, у нас есть возможность использовать готовые инструменты (например ImageDagaGenerator в библиотеке Tensorflow), но такой подход работает только если у нас стандартные данные, такие как папки с файлами jpg/png или csv файлы.  А что делать, если у нас несколько различных типов данных (например, входные данные - это изображения и их текстовое описание), или большое количество табличных данных, где, например, каждый файл это данные за один день? В этих случаях для загрузки и подготовки данных на вход модели придётся писать свой собственный генератор данных.

В данной статье я детально расскажу, как я создавал свой DataGenerator в Kaggle соревновании по определению наличия опухоли головного мозга по МРТ.

Итак, посмотрим на данные, которые нам предоставили. Для обучения у нас имеется 585 примеров. Каждый пример представляет собой МРТ скан в четырех режимах: Fluid Attenuated Inversion Recovery (FLAIR), T1-weighted pre-contrast (T1w), T1-weighted post-contrast (T1Gd), T2-weighted (T2). Скан в каждом режиме представляет собой набор одноканальных изображений в формате DICOM. Возьмем один из примеров и посмотрим разрешение и количество файлов для каждого режима:

Читать далее

Kubernetes и моделирование на minizinc

Время на прочтение10 мин
Количество просмотров3.9K

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

Читать далее

Возможности функций, возвращающих другие функции в JavaScript

Время на прочтение11 мин
Количество просмотров9.7K

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

Поскольку функции можно передавать куда угодно, мы можем поместить их в аргументы функций.

Читать далее

Добавляем интернационализацию в приложение на Next.js

Время на прочтение4 мин
Количество просмотров12K

С 10-й версии в Next.js есть встроенная обработка интернационализированной маршрутизации.

В этой статье мы рассмотрим, как добавить интернационализацию в приложение на Next.js — к концу статьи научитесь делать следующее:

• Добавлять интернационализированную маршрутизацию в приложение на фреймворке Next.js.

• Обрабатывать переключение языковых стандартов («локалей»).

• Добавлять в приложение переведенный текст.

Читать далее

Языки Data Mining и AI переживают бум

Время на прочтение5 мин
Количество просмотров8.9K

Смартфоны много лет назад стали хитом, а за ними последовали языки программирования мобильных приложений. Достигший пика на третьей позиции Objective-C использовался только для iPhone. Сегодня ту же картину мы видим в Data Mining и искусственном интеллекте: языки программирования в этих областях переживают бум.

Ярчайший пример — Python, отвоевавший вторую позицию у Java. Благодаря этому возродился Fortran, но не только он. Подробности, которыми делимся к старту флагманского курса по Data Science, читайте под катом.

Читать далее

Go: стоит ли использовать указатели вместо копий структуры?

Время на прочтение4 мин
Количество просмотров11K

Систематическое использование указателей для передачи структур вместо их копирования для многих разработчиков Go кажется лучшим вариантом с точки зрения производительности.

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

Читать далее

Перевод Курса по стартапам и бизнесу от Стэнфордского Университета. Лекция №5. Конкуренция—это удел лузеров. Питер Тиль

Время на прочтение2 мин
Количество просмотров6.4K

В этой небольшой статье я хочу кратко описать содержимое лекции №5 - Конкуренция — это удел лузеров. (Питер Тиль) из курса по стартапам и бизнесу от Стэнфордского Университета.

Читать далее

Разбиения чисел и магические шестиугольники

Время на прочтение12 мин
Количество просмотров3.5K

Среди свойств разбиений чисел на части можно указать одно, не называемое другими авторами, которое в ряде случаев оказывается весьма полезным. Речь идет о свойстве разбиений числа, закрепляющем за конкретными слагаемыми подмножества позиций (точек) дискретной плоскости, в котором эти слагаемые могут перемещаться, не выходя за его пределы. Например, рассмотрим такую задачу. Имеется 2 спицы длиной 12 ед и 7 шаровых бусин с диаметрами 2,2,2,3,3,4,4 ед и сквозными отверстиями, проходящими через центры бусин. Как распределить и нанизать бусины на спицы, чтобы спицы после вставки их в кольцо с диаметром большим 12 образовали симметричную фигуру?

Читать далее

Ассоциативная самозамкнутая сеть. Что нужно для создания сильного ИИ

Время на прочтение6 мин
Количество просмотров4K

Свойственное поведение — искажение результатов работы системы, обусловленное её строением. Как уменьшить влияние данной проблемы и организовать логическую связь между неограниченным множеством разнородных объектов для дальнейшего использования их не только в качестве знаний, но и описаний действий, что много важнее.

Читать далее

Спектральный анализ временных рядов с помощью python

Время на прочтение3 мин
Количество просмотров11K

С развитием информационных технологий профессия DS стала чрезвычайно популярна. Сейчас почти каждый может имея ПК и установленный на нем стандартный пакет Python, анализировать данные и строить на их основе прогнозы.

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

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

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

Данные по посещениям представлены на графике ниже

Читать далее

Анти-if: недостающие паттерны

Время на прочтение6 мин
Количество просмотров9.2K

Около 10 лет назад я столкнулся с анти-if кампанией и счел ее абсурдной концепцией. Как вы можете создать полезную программу без использования оператора if? Абсурдно.

Но потом это заставляет задуматься. Помните тот вложенный код, который вам пришлось разбирать на прошлой неделе? Это было ужасно, верно? Если бы только был способ сделать его проще.

На сайте кампании " Анти-if", к сожалению, мало практических советов. Данная статья призвана исправить это положение с помощью подборки паттернов, которые вы можете взять на вооружение, когда возникнет такая необходимость. Но сначала давайте рассмотрим проблему, которую создают операторы if.

Читать далее

Как называть функции во фронтенде

Время на прочтение2 мин
Количество просмотров7K

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

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

Независимо от того, каким фреймворком вы пользуетесь, и пользуетесь ли вообще, у нас есть HTML-шаблон и JavaScript-код. Код частично залезает в шаблон, и тут и появляется наша проблема. От чего отталкиваться при названии функций?

Читать далее

Global WHEAT CHALLENGE 2021 или как накормить весь мир

Время на прочтение4 мин
Количество просмотров959

Представляю вашему внимаю обзор на соревнование Global Wheat Challenge 2021, а также делюсь своим опытом участия в нем.

О соревновании

Данное соревнование проводилось на площадке aicrowd.com, аналоге kaggle, и организатором был университет Саска́чеван. Денежные призы присуждались за первые три места: 1) 2000$; 2) 1000$; 3) 1000$.

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

Стоит сказать, что это не первое соревнование, организованное этим университетом в рамках данной задачи. Так, например, в прошлом году он так же проводил соревнование на площадке kaggle.

Датасет

Набор данных состоит из более чем 6000 изображений с разрешением 1024х1024 пикселей, содержащих свыше 300 тыс. уникальных колосьев пшеницы. Изображения получены из 11 стран и охватывают 44 уникальных сеанса измерений. Сеанс измерения — это набор изображений, полученных в одном и том же месте в течение нескольких часов. По сравнению с конкурсом 2020 года на Kaggle, он представляет 4 новые страны, 22 новых сеанса измерений, 1200 новых изображений и 120 тыс. новых голов пшеницы. Стоит отметить, что распределение между test и train было не стратифицировано относительно сеансов измерений, то есть в test попали изображения из стран и временных периодов, не встречающихся в train. Так организаторы пытались подтолкнуть участников создавать робастный метод детекции.

Читать далее

Ближайшие события

Регистрируйтесь на закрытое тестирование Visual Studio 2022 for Mac

Время на прочтение3 мин
Количество просмотров3.7K

Сегодня мы приглашаем вас опробовать Visual Studio 2022 для Mac, ведь мы представляем нашу первую предварительную версию. Это первый выпуск нашей .NET IDE с полностью обновленным пользовательским интерфейсом macOS. Мы будем рады, если вы скачаете его, опробуете и поделитесь своими отзывами, чтобы помочь нам сформировать следующий крупный выпуск Visual Studio для Mac.

Зарегистрируйтесь сейчас!

Предварительную версию Visual Studio 2022 для Mac можно установить вместе с более ранними версиями Visual Studio для Mac, и ее можно использовать бесплатно.

Наша цель в Visual Studio 2022 для Mac - создать современную среду разработки .NET IDE, адаптированную для Mac, которая обеспечит продуктивную работу, которая вам так полюбилась в Visual Studio.

Читать далее

Как в Trello оценить процессные задачи и построить их визуализацию?

Время на прочтение8 мин
Количество просмотров5.6K

Если вы задавались вопросом:
- "Как четко (или почти четко) измерить эффективность процессной работы программистов, маркетологов, аналитиков, дизайнеров и на основе этих измерений построить визуализацию?" - то эта статья будет вам интересна.

В решении задачи используем язык программирования R, графики на ggplot и Trello как инструмент таск-менеджмента в том виде в котором ранее скорее всего вы его не использовали.

Разберем подробно

Data Science на JavaScript без Python

Время на прочтение10 мин
Количество просмотров9.9K

Мы уже писали о том, как запустить Python в браузере, а сегодня к старту флагманского курса по Data Science расскажем, как привычные для Python задачи решаются на JavaScript. Если вы знакомы только с JS и хотите попробовать Data Science, не покидая зону комфорта, (или, наоборот, хотите познакомиться с JS), просто хочется необычных экспериментов или нужно интегрировать небольшую управляемую визуализацию о статистике на сайт, читайте подробности под катом.

Автор, переводом статьи которого о множестве Мандельброта мы уже делились в блоге, также включил ссылку на репозиторий polyglot_fit с решением задачи из сегодняшней статьи на других языках.

Читать далее

DI не из ада

Время на прочтение4 мин
Количество просмотров18K

Год назад я написал статью про DI в Spring/Java EE. Мой тезис звучал довольно категорично: "DI через конструкторы является единственно правильным. Все остальное – от лукавого". Прошло время, я пообщался с разными разработчиками на эту тему, сменил проект, компанию, провел множество собеседований, отсмотрел большое количество строк на code-review и сейчас могу сказать, что не все так однозначно. Давайте наконец разберемся, как же все-таки инжектить правильно.

Читать далее

Что в коробке? Обзор свежего релиза Toolbox App 1.21

Время на прочтение3 мин
Количество просмотров7.8K

Если вы еще не знаете, что такое Toolbox App, то этот пост для вас, потому что мы сейчас расскажем. А если вы — один из 800 тысяч наших пользователей, то этот пост тем более для вас, потому что в новой версии много интересного, а еще она быстрее работает и меньше кушает.

Что в коробке?

Обновления .NET за июль 2021 – 5.0.8 и 3.1.17

Время на прочтение1 мин
Количество просмотров4K

Мы выпустили июльские обновления .NET. Эти обновления содержат улучшения надежности и другие исправления. Изучайте примечания к выпускам для получения подробной информации об обновленных продуктах.

Вы можете скачать версии 5.0.8 , 3.1.17 для Windows, macOS, и Linux, для x86, x64, Arm32, и Arm64.

Читать далее

Как новый метод упаковки в BERT ускоряет обработку естественного языка в 2 раза

Время на прочтение11 мин
Количество просмотров2.8K

Используя новый алгоритм упаковки, в Graphcore ускорили обработку естественного языка более чем в 2 раза при обучении BERT-Large. Метод упаковки удаляет заполнение, что позволяет значительно повысить эффективность вычислений. В Graphcore предполагают, что это также может применяться в геномике, в моделях фолдинга белков и других моделях с перекошенным распределением длины, оказывая гораздо более широкое влияние на различные отрасли и приложения. В новой работе Graphcore представили высокоэффективный алгоритм гистограммной упаковки с неотрицательными наименьшими квадратами (или NNLSHP), а также алгоритм BERT, применяемый к упакованным последовательностям. К старту курса о машинном и глубоком обучении представляем перевод обзора соответствующей публикации на ArXiv от её авторов. Ссылку на репозиторий вы найдёте в конце статьи.

Читать далее

Вклад авторов