При обучении нейронной сети на обучающей выборке на выходе нейросети вычисляются два ключевых параметра эффективности обучения — ошибка и точность предсказания. Для этого используются функция потери (loss) и метрика точности. Эти метрики различаются в зависимости от поставленной задачи (классификация или сегментация изображения, детекция объекта, регрессия). В Keras мы можем определить свои собственные функцию потери и метрики точности под свою конкретную задачу. О таких кастомных функциях и пойдет речь в статье. Кому интересно, прошу под кат.
Читать полностью »
Рубрика «оптимизация» - 15
Использование кастомных функций потери и метрики качества обучения в Keras
2019-11-23 в 14:43, admin, рубрики: keras, loss, машинное обучение, метрики качества, нейронные сети, оптимизация, функция потерьИнкремент элементов вектора
2019-11-13 в 8:57, admin, рубрики: c++, clang, gcc, Блог компании PVS-Studio, Компиляторы, оптимизация, оптимизирующий компиляторВ каком случае инкремент элементов вектора std::vector будет быстрее – если они имеют тип uint8_t или uint32_t?
Чтобы не рассуждать отвлечённо, рассмотрим две конкретные реализации:
void vector8_inc(std::vector<uint8_t>& v)
{
for (size_t i = 0; i < v.size(); i++)
{
v[i]++;
}
}
void vector32_inc(std::vector<uint32_t>& v)
{
for (size_t i = 0; i < v.size(); i++)
{
v[i]++;
}
}
DevOops 2019 глазами разработчика
2019-11-13 в 7:35, admin, рубрики: Amazon Web Services, AWS, devops, Блог компании FunCorp, высокая доступность, высокая нагрузка, высокая производительность, конференции, конференция, оптимизация, Программирование
29-30 октября в Санкт-Петербурге прошла конференция DevOops. В этой статье я поделюсь впечатлениями и инсайтами, а также краткими заметками о прослушанных докладах. Небольшой disclaimer: поскольку я разработчик, то некоторые мысли и комментарии могут быть с уклоном в Dev, нежели в Ops, но я постараюсь быть как можно объективнее.
DevOops входит в число мероприятий, которые проводит JUG Ru Group. И нужно признать, организация и уровень докладов были на уровне. Конференция длилась два дня, в три потока. Помимо этого, были дискуссионные зоны для общения со спикерами, мастер-классы, а также lightning talks — более лёгкие и короткие доклады, в том числе для тех, кто ранее не выступал и хочет попробовать себя в качестве спикера.
Тематическая канва DevOops 2019 — cloud native. Бо́льшая часть докладов была прямо или косвенно посвящена облакам. Тема давно уже не новая, однако есть множество неочевидных сложностей, которые возникают в процессе использования облачных технологий. И многие пришли специально, чтобы найти ответы. Это было особенно заметно на QA-сессиях после докладов. Спикерам задавали практические вопросы, которые действительно волнуют людей. Почти на каждый вопрос следовали реплики других участников «У нас такая же проблема!» и начиналась оживлённая дискуссия.
Читать полностью »
Лицемерие google. PageSpeed Insights
2019-11-09 в 14:25, admin, рубрики: google pagespeed insights, PageSpeed, pagespeed insights, seo, seo-аналитика, веб-аналитика, оптимизация, оптимизация сайта, поисковая оптимизация, Разработка веб-сайтовGoogle Page Speed Insights — это сервис от гугла, который позволяет определить производительность сайта и дает рекомендации по его оптимизации. Очень важно понимать, что это всего лишь рекомендации! Некоторые воспринимают эти рекомендации настолько серьезно, что готовы реализовать все что там написано в ущерб функционалу своего сайта, что в итоге может даже навредить. Но это довольно сложная тема с множеством нюансов, а данная статься лишь мои мысли в слух и пара замечаний самому google.
Есть такая рекомендация:
Используйте современные форматы изображений:
Форматы JPEG 2000, JPEG XR и WebP обеспечивают более эффективное сжатие по сравнению с PNG или JPEG, поэтому такие изображения загружаются быстрее и потребляют меньше трафика
С этим не поспоришь, а WebP, когда я его первый раз увидел, я был потрясен. Отличное сжатие без явной потери качества. Но там же сразу можно перейти по ссылке и увидеть, какова же поддержка браузерами данного формата?
Подробный разбор симплекс-метода
2019-11-02 в 14:18, admin, рубрики: Линейное программирование, математика, оптимизация, Симплекс-методПролог
Недавно появилась необходимость создать с нуля программу, реализующую алгоритм симплекс-метода. Но в ходе решения я столкнулся с проблемой: в интернете не так уж много ресурсов, на которых можно посмотреть подробный теоретический разбор алгоритма (его обоснование: почему мы делаем те или иные шаги) и советы по практической реализации — непосредственно, алгоритм. Тогда я дал себе обещание — как только завершу задачу, напишу свой пост на эту тему. Об этом, собственно, и поговорим.
Замечание. Пост будет написан достаточно формальным языком, но будет снабжен комментариями, которые должны внести некоторую ясность. Такой формат позволит сохранить научный подход и при этом, возможно, поможет некоторым в изучении данного вопроса.
Читать полностью »
Python v3.x: как увеличить скорость декоратора без регистрации и смс
2019-11-02 в 11:33, admin, рубрики: idewave-core, python, python3, оптимизацияВначале была эта статья. Потом к ней появился комментарий. А в результате я углубился в чтение матчасти, закопался в дебаг и смог оптимизировать код из первой части этой истории. Предлагаю вместе со мной пройтись по основным моментам.Читать полностью »
Нам нужен другой Битрикс
2019-10-28 в 10:51, admin, рубрики: 1С-Битрикс, битрикс, интерфейсы, оптимизация, юзабилитиКак быстро определить, что на отдельно взятый сайт забили, и им никто не занимается? Если в подвале главной страницы в копирайте стоит не текущий год, а старый, то именно в этом году опека над сайтом скоропостижно оборвалась. Так и на странице входа в актуальную админку Битрикса на конец 2019-го года стоит 2016 год.
Читать полностью »
Программист-защитник сильнее энтропии
2019-10-28 в 8:12, admin, рубрики: best practices, fallback, post mortem, безопасность, Блог компании FunCorp, валидация, высокая производительность, кеширование, надежность, оптимизация, прагматизм, практики, практики программирования, Программирование, Проектирование и рефакторинг, процесс разработки, процессы, Разделение привилегий, разделяй и властвуй, разработка, Совершенный код, стабильность© Dragon Ball. Goku.
Программист-защитник в любой момент и в любом месте кода ожидает появления потенциальных проблем и пишет код таким образом, чтобы заранее от них защититься. А если от проблемы нельзя защититься, то хотя бы сделать так, чтобы её последствия и влияние на пользователей были минимальными.
Вспоминается эффект FlashForward из голливудских блокбастеров, когда главный герой видит грядущую катастрофу и остаётся предельно спокойным, потому что заранее знает, что она произойдёт, и имеет от неё защиту. Идея защитного программирования в том, чтобы защититься от проблем, которые сложно или вовсе невозможно предвидеть. Программист-защитник ожидает появления ошибок в любом месте системы и в любой момент времени, чтобы предотвратить их до того, как они нанесут ущерб. При этом цель не в том, чтобы создать систему, которая никогда не падает, это всё равно невозможно. Цель в том, чтобы создать систему, которая падает изящно в случае любой непредвиденной проблемы.
Давайте разберёмся подробнее, что входит в понятие «падать изящно».
- Падать быстро. В случае непредвиденной ошибки все операции должны завершаться сразу же, особенно если последующие вычисления тяжёлые или могут привести к порче данных.
- Падать аккуратно. Если возникла ошибка, программа должна освободить все ресурсы, снять локи, удалить временные и наполовину записанные файлы, закрыть соединения. Дождаться завершения критических операций, прерывание которых может привести к непредсказуемым результатам. Либо безопасным способом аварийно завершить эти операции.
- Падать явно и красиво. Если что-то сломалось, сообщение об ошибке должно быть простым, лаконичным и содержать важные детали из того контекста системы, где возникла ошибка. Это поможет команде, которая отвечает за систему, максимально быстро разобраться в проблеме и исправить её.
Принцип увеличения гибкости характеристик современных автомобильных ДВС
2019-10-26 в 4:33, admin, рубрики: автомобильный, гибкость, двигатель, двс, КПД, Научно-популярное, оптимизация, Основа, современный, транспорт
Насколько важно иметь совершенный код в программе для ее быстрой и качественной работы? Настолько же важно для ДВС тратить меньше энергии там, где этих затрат можно избежать.
Прошлая статья из-за упрощений вызвала вопросы критического характера у части хабра-людей. В этой я попробую ответить на них подробнее как и обещал, а так же раскрыть один из основных принципов ДВС последних десятилетий упомянутый в статье «Эволюция развития автомобильных двигателей с начала 90-х годов.»
Чем ИТ может сильно помочь колхозу «Путь коммунизма» или агрохолдингу
2019-10-14 в 12:12, admin, рубрики: автоматизация, агрохолдинг, Анализ и проектирование систем, Блог компании SAS, данные, кластеризация, колхоз, оптимизация, планирование, потребитель, Программирование, рынок, севооборот, сельское хозяйство, техника, управление проектами, урожай
Было-стало после кластеризации и оптимизации культур
Колхозы и агрохолдинги в России почти не автоматизированы. А там на почти ровном месте с минимальными затратами можно получить до 10 % прироста доходности за счёт выбора оптимального портфеля выращиваемых культур, точного распределения техники по работам и вообще нормального планирования. Мы пришли на несколько объектов и провели расчёты для них, о чём сейчас я и расскажу.
Сформулировали три фундаментальных вопроса:
- В каких пропорциях что нужно вырастить и где, чтобы больше заработать?
- Когда какая техника и где будет работать?
- Что должно быть в парке техники, чтобы не возникало рисков срывов сроков проведения агроопераций или больших затрат на найм?
Мы решали все эти задачи, и там море интересных особенностей. Обсуждать мы будем абстрактный колхоз «Путь коммунизма», расположенный в случайном месте (нам просто понравились поля на спутниковой карте), потому что настоящих заказчиков я называть пока не могу.
В таких местах, конечно, действуют рациональные агенты. Но иногда встречается пьющий агроном, иногда попадается косячник-механизатор и другие узнаваемые персонажи из реальной жизни. Нас ждут град, сломанный комбайн и другие приключения. И вот мы пойдём в это всё со своей автоматизацией. Читать полностью »