Написал библиотеку для обучения нейронной сети. Кому интересно, прошу.
Нейросеть для разработчиков C++
Написал библиотеку для обучения нейронной сети. Кому интересно, прошу.
Пользователь
Когда-то давно, в студенческие годы, меня укусил питон, правда инкубационный период затянулся и получилось так, что я стал программистом на перле.
Однако в какой-то момент перл исчерпал себя и я решил заняться питоном, сначала просто делал что-то и разбирался с тем, что нужно для данной задачи, а потом понял, что нужны какие-то систематизированные знания и прочитал несколько книг:
Которые мне показались вполне подходящими для понимания основных тонкостей языка, хотя не помню, чтобы в них упоминалось про slots, но и не уверен, что это реально нужная фича — если уже по памяти прижало, то скорее всего одного этого способа будет недостаточно, но конечно это всё зависит от ситуации.
В итоге у меня накопились какие-то заметки об особенностях питона, которые, как мне кажется, могут быть полезны тому кто пожелает мигрировать на него с других языков.
def memo_square(a, cache={}):
if a not in cache:
cache[a] = a*a
return cache[a]
Привет, Хабр, в этой статье я расскажу про библиотеку ignite, с помощью которой можно легко обучать и тестировать нейронные сети, используя фреймворк PyTorch.
С помощью ignite можно писать циклы для обучения сети буквально в несколько строк, добавлять из коробки расчет стандартных метрик, сохранять модель и т.д. Ну, а для тех кто переехал с TF на PyTorch, можно сказать, что библиотека ignite — Keras для PyTorch.
В статье будет детально разобран пример обучения нейронной сети для задачи классификации, используя ignite
Многие считают, что метапрограммирование в Python излишне усложняет код, но если использовать его правильно, то можно быстро и элегантно реализовать сложные паттерны проектирования. Помимо этого, такие известные Python-фреймворки, как Django, DRF и SQLAlchemy, используют метаклассы, чтобы обеспечить легкую расширяемость и простое переиспользование кода.
В этой статье расскажу, почему не стоит бояться использовать метапрограммирование в своих проектах и покажу, для каких задач оно подходит лучше всего. Еще больше о возможностях метапрограммирования можно узнать на курсе Advanced Python.
Вы любите продуктовые доклады? Я — нет. А вы любите доклады, не относящиеся к теме конференции? Я — категорически нет. Складывается ощущение что я плачу за чужие амбиции и отсутствие контента. Потому мы делаем CLRium 4: где собираем все самое последнее, полезное… И самое главное — кишочки!
Теперь, помимо докладов будет жаркая дискуссия между спикерами по возможностям C# 8.0, которые полны неоднозначных моментов. И поверьте, будет жара: я многие моменты не приемлю, а вот второй спикер, Александр Кугушев уверяет что они так полезны, что хоть завтра — в прод. Наталия Цвилих придерживается смешанной точки зрения… Интереснейшая получится беседа, я вам обещаю.
Не все так просто
На самом деле я немного обманул, сказав, что тела всегда двигаются так, чтобы минимизировать действие. Хотя в очень многих случаях это действительно так, можно придумать ситуации, в которых действие явно не минимально.
Например, возьмем шарик и поместим его в пустое пространство. На некотором отдалении от него поставим упругую стенку. Допустим, мы хотим, чтобы через некоторое время шарик оказался в том же самом месте. При таких заданных условиях шарик может двигаться двумя разными способами. Во-первых, он может просто оставаться на месте. Во-вторых, можно его толкнуть по направлению к стенке. Шарик долетит до стенки, отскочит от нее и вернется обратно. Понятно, что можно толкнуть его с такой скоростью, чтобы он вернулся в точно нужное время.
Оба варианта движения шарика возможны, но действие во втором случае получится больше, потому что все это время шарик будет двигаться с ненулевой кинетической энергией.
Как же спасти принцип наименьшего действия, чтобы он был справедлив и в таких ситуациях? Об этом мы поговорим в следующий раз.