а можно тут чуть подробнее? Как на разных видюхах оно себя ведет (по скорости). Я пробовал на древней 960 - почему-то не завелось вообще (PyTorch и Mixed precision от NVidia).
теоретический. А практический? Можешь прогнать на своих реальных задачах и сравнить скорость (с кратким описанием что за задача и на каком фреймворке)? Что-то мне говорит, что практический разрыв будет не более 8-10x. Почитал коммент, говорят про 6x.
Еще раз. Когда выбора [практически] нет, то особо думать не приходится - покупаем что можем.
Когда идет выбор между тем или другим я предпочитаю хорошую клавиатуру и хороший экран. Это _может быть_ вариант игрового ноутбука + 24-27'' экран + клавиатура + мышка. Тогда экран и блутуз колонки (и всякое другое удобное, но большое) мы всегда держим дома, а ноутбук можем брать с собой. Но это компромисс.
В каких-то случаях мощный комп дома (с AnyDesk) и простой ноутбук в рюкзаке.
Тема вкинута знатная, можно спорить до хрипоты. Понятно, что это скрытая реклама компании-продавца. Думаю богатенькие геймеры имеют и мощный ноутбук и мощный стационарный комп. Те, что победнее или не разбираются в теме (им не нужно это) покупают какой-то один комп. И статья эта как раз для людей "не в теме". Но сколько на Хабре таких?
В целом мое мнение - лучше нормальный настольный комп с полноценной клавиатурой и большим экраном, расположенный в наиболее оптимальном месте за 120 тысяч, чем ноутбук за 150 на коленях. Не люблю когда от напряжения или неправильной позы голова болит или глаза быстро устают.
с увеличением количества и разнообразия микроэлементов
я всегда считал (и гугл со мной согласен), что микроэлементы это элементы из таблицы Менделеева (железо, медь, цинк, йод, фтор, марганец и др.), а уж говорить о "трудно поддающиеся анализу" после появления методов масс-спектрометрии..... По ходу прочтения становится видно, что речь идет, видимо, о загрязнении воды разными химикатами (синонимы этого термина: "вредные вещества", "токсичные вещества" и "загрязнители"). Перл, когда говорят "оборудование дорогое", а потом предлагают воспользоваться AI выглядит странно - откуда AI получит данные, как? В целом статья скомканная и производит впечатление смеси из биолого-химического жаргона ("трассовые вещества") и довольно простым машинным обучением (ладно карты Кохонена, хотя это и спорно, но зачем взяли лес деревьев, когда уже давно изобретен бустинг в виде XGBoost?). Возможно статья будет интересна экологам, но айтишнику трудно читать.
Изначально YOLO на вход принимает 3 канала (RGB). Мы можем подавать, к примеру, -3, -2, -1 кадр (черно-белый), текущий RGB и еще +1, +2, +3 кадр (тоже черно-белый для экономии). Получится 9 каналов на вход. Но это если мы сами обучаем нейросеть.
1. Не упомянуто про то, что можно в случае разбалансировки изменять loss функцию (для доминирующего класса уменьшать значение loss)
Из статьи не понятно, когда следует использовать именно Undersampling
Undersampling можно делать и по другому. Обучаем слабый классификатор (в случае задачи классификации) на небольшом (5%) объеме данных. После этого смотрим насколько уверенно и правильно этот классификатор работает на оставшихся 95%. Те объекты, на которых ошибается переносим в обучающую выборку ("добавка"), туда же можем переносить и неуверенно распознанные объекты. После этого обучаем финальную модель на 5%+добавка.
Подобные атаки работают против конкретных нейросетей. Стоит немного дообучить нейросеть, а тем более обучить заново и эффективность атаки падает.
Поэтому просьба к автору сделать следующий эксперимент: на той же архитектуре ResNet-18 проводим повторное обучение (возможно на другом обучающем наборе). Получаем похожую нейросеть (с точностью 99%). И пробуем прогнать все картинки из экспериментов на первой нейросети. Почти уверен, что там, где первая нейросеть просела до 80% вторая нейросеть просядет только до 95%. Всё потому, что мы атакуем первую нейросеть.
Можно ли атаковать сразу две нейросети? Можно, но чуть сложнее.
Генерируется эталонный лог-файл какой-то программы (без сжатия). На основе его мы создаем словарь (посмотрите документацию по zstd сжатию). После этого мы можем эффективно сжимать новые логи (словарь постоянно хранится на диске и может не меняться). Если новая строка совсем не проходит по словарю она всё равно будет сохранена, просто коэффициент сжатия будет поменьше, вместо 1:8 к примеру 1:3.
Все записи в лог, которые произошли внутри такого блока, не отправляются в хранилища логов немедленно
по моему самый спорный момент. Потому что самая плохая ошибка внезапно всё крашит.
Предлагаю несколько другой подход. Мы пишем одновременно в три лога.
1-й лог файл самый подробный и содержит в себе debug, info, warning и error события.
2-й info и выше
3-й warning и выше
А теперь самое интересное: мы устанавливаем максимальный размер каждого лога. К примеру 1-е логи в сумме 50 мегабайт (при достижении 10 мегабайт мы начинаем новый log файл, самый старый стираем, что бы не превышать лимит размера). Аналогично задаем лимиты для 2-го и 3-го лога.
Разумеется, можно сделать 4 лога и в каждый писать только свой уровень (это уменьшит размер, но усложнит анализ логов).
была такая тема, что "собака" бегает по стройке раз в N часов и отслеживает реальное строительство и план. При расхождении (а может и при отставании от графика) предупреждает.
А можно в конце добивать названия методик, которые пришли на смену?
ну уж numpy можно сразу размер массива задать?
append
там работает медленно.Пожалуй не хватает ссылок:
https://habr.com/ru/companies/vk/articles/438560/
https://habr.com/ru/companies/ods/articles/645887/
https://habr.com/ru/articles/561732/
https://habr.com/ru/companies/otus/articles/527554/
Отдельное спасибо за наглядные графики, лично мне часто не хватает объясняющих наглядных примеров.
а можно тут чуть подробнее? Как на разных видюхах оно себя ведет (по скорости). Я пробовал на древней 960 - почему-то не завелось вообще (PyTorch и Mixed precision от NVidia).
теоретический. А практический? Можешь прогнать на своих реальных задачах и сравнить скорость (с кратким описанием что за задача и на каком фреймворке)? Что-то мне говорит, что практический разрыв будет не более 8-10x. Почитал коммент, говорят про 6x.
Еще раз. Когда выбора [практически] нет, то особо думать не приходится - покупаем что можем.
Когда идет выбор между тем или другим я предпочитаю хорошую клавиатуру и хороший экран. Это _может быть_ вариант игрового ноутбука + 24-27'' экран + клавиатура + мышка. Тогда экран и блутуз колонки (и всякое другое удобное, но большое) мы всегда держим дома, а ноутбук можем брать с собой. Но это компромисс.
В каких-то случаях мощный комп дома (с AnyDesk) и простой ноутбук в рюкзаке.
Тема вкинута знатная, можно спорить до хрипоты. Понятно, что это скрытая реклама компании-продавца. Думаю богатенькие геймеры имеют и мощный ноутбук и мощный стационарный комп. Те, что победнее или не разбираются в теме (им не нужно это) покупают какой-то один комп. И статья эта как раз для людей "не в теме". Но сколько на Хабре таких?
В целом мое мнение - лучше нормальный настольный комп с полноценной клавиатурой и большим экраном, расположенный в наиболее оптимальном месте за 120 тысяч, чем ноутбук за 150 на коленях. Не люблю когда от напряжения или неправильной позы голова болит или глаза быстро устают.
Ну почему мы забываем наш язык?! Откуда взялись эти "вызовы"? Кого мы зовём? Это всегда называлось словом "проблема".
"для борьбы с проблемами загрязнения воды" - разве не так?
я всегда считал (и гугл со мной согласен), что микроэлементы это элементы из таблицы Менделеева (железо, медь, цинк, йод, фтор, марганец и др.), а уж говорить о "трудно поддающиеся анализу" после появления методов масс-спектрометрии..... По ходу прочтения становится видно, что речь идет, видимо, о загрязнении воды разными химикатами (синонимы этого термина: "вредные вещества", "токсичные вещества" и "загрязнители").
Перл, когда говорят "оборудование дорогое", а потом предлагают воспользоваться AI выглядит странно - откуда AI получит данные, как?
В целом статья скомканная и производит впечатление смеси из биолого-химического жаргона ("трассовые вещества") и довольно простым машинным обучением (ладно карты Кохонена, хотя это и спорно, но зачем взяли лес деревьев, когда уже давно изобретен бустинг в виде XGBoost?).
Возможно статья будет интересна экологам, но айтишнику трудно читать.
Изначально YOLO на вход принимает 3 канала (RGB). Мы можем подавать, к примеру, -3, -2, -1 кадр (черно-белый), текущий RGB и еще +1, +2, +3 кадр (тоже черно-белый для экономии). Получится 9 каналов на вход. Но это если мы сами обучаем нейросеть.
1. Не упомянуто про то, что можно в случае разбалансировки изменять loss функцию (для доминирующего класса уменьшать значение loss)
Из статьи не понятно, когда следует использовать именно Undersampling
Undersampling можно делать и по другому. Обучаем слабый классификатор (в случае задачи классификации) на небольшом (5%) объеме данных. После этого смотрим насколько уверенно и правильно этот классификатор работает на оставшихся 95%. Те объекты, на которых ошибается переносим в обучающую выборку ("добавка"), туда же можем переносить и неуверенно распознанные объекты. После этого обучаем финальную модель на 5%+добавка.
Черный ящик - конкретная нейросеть, но нет доступа к весам.
Ведь понятно, что сделать универсальную картинку, которая сразу всеми нейросетями будет ошибочно распознаваться не получится.
Подобные атаки работают против конкретных нейросетей. Стоит немного дообучить нейросеть, а тем более обучить заново и эффективность атаки падает.
Поэтому просьба к автору сделать следующий эксперимент: на той же архитектуре ResNet-18 проводим повторное обучение (возможно на другом обучающем наборе). Получаем похожую нейросеть (с точностью 99%). И пробуем прогнать все картинки из экспериментов на первой нейросети. Почти уверен, что там, где первая нейросеть просела до 80% вторая нейросеть просядет только до 95%. Всё потому, что мы атакуем первую нейросеть.
Можно ли атаковать сразу две нейросети? Можно, но чуть сложнее.
напомнило баян "Как нарисовать сову"
а вот тут откровенно мало информации, а ведь именно это могло бы отличить эту статью от десятка других...
Генерируется эталонный лог-файл какой-то программы (без сжатия). На основе его мы создаем словарь (посмотрите документацию по zstd сжатию). После этого мы можем эффективно сжимать новые логи (словарь постоянно хранится на диске и может не меняться). Если новая строка совсем не проходит по словарю она всё равно будет сохранена, просто коэффициент сжатия будет поменьше, вместо 1:8 к примеру 1:3.
по моему самый спорный момент. Потому что самая плохая ошибка внезапно всё крашит.
Предлагаю несколько другой подход. Мы пишем одновременно в три лога.
1-й лог файл самый подробный и содержит в себе debug, info, warning и error события.
2-й info и выше
3-й warning и выше
А теперь самое интересное: мы устанавливаем максимальный размер каждого лога. К примеру 1-е логи в сумме 50 мегабайт (при достижении 10 мегабайт мы начинаем новый log файл, самый старый стираем, что бы не превышать лимит размера). Аналогично задаем лимиты для 2-го и 3-го лога.
Разумеется, можно сделать 4 лога и в каждый писать только свой уровень (это уменьшит размер, но усложнит анализ логов).
Zstandard (zstd) сжатие позволяет заранее создать словарь. при этом сохраняется возможность писать маленькими кусочками.
и тут, я подозреваю, стоит сказать про номер версии.
была такая тема, что "собака" бегает по стройке раз в N часов и отслеживает реальное строительство и план. При расхождении (а может и при отставании от графика) предупреждает.
думаю частичный ответ: "много false positive"