То чувство, когда даже не знаешь хорошо это или плохо, что не купил грамы…
https://habr.com/ru/news/t/482984/
А вы что думаете? Взлетит эта криптовалюта или нет?
https://habr.com/ru/news/t/482984/
А вы что думаете? Взлетит эта криптовалюта или нет?
Forwarded from Python Academy
Чат-боты – это будущее Интернета?
В 2018 году объем мирового рынка чат-ботов достиг 1,27 миллиардов долларов. В 2019 он вырос до 2 миллиардов и будет продолжать расти на 30% в год. К 2023 году рынок ботов вырастет до 33 миллиардов рублей. Цифры заманчивые, но давайте разберемся во всем по порядку.
Читать 9 минут
В 2018 году объем мирового рынка чат-ботов достиг 1,27 миллиардов долларов. В 2019 он вырос до 2 миллиардов и будет продолжать расти на 30% в год. К 2023 году рынок ботов вырастет до 33 миллиардов рублей. Цифры заманчивые, но давайте разберемся во всем по порядку.
Читать 9 минут
Teletype
Чат-боты – это будущее Интернета?
Разновидности чат-ботов, сферы их применения, а также краткий анализ рынка с конкретными цифрами.
Квантовые нейросети
Как вы уже наверное знаете, нейронные сети в своей работе используют нейроны. Эти нейроны являются детерминистическими в смысле того, что на выходе функция активации дает четко определенную величину.
Говоря о квантовой нейронной сети вводят понятие стохастического нейрона. Функция активации теперь рассматривается с вероятностной точки зрения.
Такой нейрон будет давать 1 с вероятностью, определенной функцией активации
Так и зачем это нужно?
В одной довольно старой статье было показано, что классический однослойный (без скрытых слоев) перцептрон (нейронная сеть, состоящая всего лишь из одного нейрона) не может решить задачу исключающего ИЛИ.
А вот аналогичный квантовый однослойный перцептрон уже может решить эту задачу.
Не говоря уже о том, что ближайший "органический" аналог подобной квантовой нейросети это... наш мозг.
#NN
Как вы уже наверное знаете, нейронные сети в своей работе используют нейроны. Эти нейроны являются детерминистическими в смысле того, что на выходе функция активации дает четко определенную величину.
Говоря о квантовой нейронной сети вводят понятие стохастического нейрона. Функция активации теперь рассматривается с вероятностной точки зрения.
Такой нейрон будет давать 1 с вероятностью, определенной функцией активации
P(v) и 0 с вероятностью 1 - P(v).Так и зачем это нужно?
В одной довольно старой статье было показано, что классический однослойный (без скрытых слоев) перцептрон (нейронная сеть, состоящая всего лишь из одного нейрона) не может решить задачу исключающего ИЛИ.
А вот аналогичный квантовый однослойный перцептрон уже может решить эту задачу.
Не говоря уже о том, что ближайший "органический" аналог подобной квантовой нейросети это... наш мозг.
#NN
Вывод значения по умолчанию для отсутствующего ключа словаря
При обращении к несуществующему ключу словаря Python выбрасывает исключение. Можно этого избежать, например вызывая метод
При создании собственного типа данных на основе словарей обратите внимание на метод
При обращении к несуществующему ключу словаря Python выбрасывает исключение. Можно этого избежать, например вызывая метод
get. В данном случае метод выдаст None (по умолчанию) либо заданное значение аргумента.>>> d = {'a':1, 'b':2}>>> d.get('c'))None>>> d.get('c', 3)3При создании собственного типа данных на основе словарей обратите внимание на метод
__missing__ для возвращения аргумента при отсутствии ключа:class MyDict(dict): def __missing__(self, key): return key...>>> D = MyDict(a=1, b=2)>>> D{'a': 1, 'b': 2}>>> D['a']1>>> D['c']cВчера как обычно занимался нейросетями, настраивал модель в
Дальнейший шаг – это научиться с помощью
Например даем картинку с надписью 1+1, пропускаем через нашу программу и получаем ответ 2.
Интересно? Рассказать об этом подробнее?
#keras #cv2
keras (кстати, очень удобная штука, советую). Тренировал модель на датасете картинок с математическими символами, взятого из какого-то китайского репозитория на гитхабе. Точность была порядка 95%, вроде бы. Архитектуру сети взял с одной статьи с архива, прикрепляю ниже картинку, кому интересно.Дальнейший шаг – это научиться с помощью
cv2 разбивать картинку с несколькими символами на отдельные картинки, ну а дальше распознавать и парсить их.Например даем картинку с надписью 1+1, пропускаем через нашу программу и получаем ответ 2.
Интересно? Рассказать об этом подробнее?
#keras #cv2
Hello World pinned «Вчера как обычно занимался нейросетями, настраивал модель в keras (кстати, очень удобная штука, советую). Тренировал модель на датасете картинок с математическими символами, взятого из какого-то китайского репозитория на гитхабе. Точность была порядка 95%…»
Всякие разности
Как вы знаете, мы с Адрианом бросили все силы на создание обучающих курсов, поставленных в противовес огромным компаниям, которые у нас зачастую покупают рекламу на каналах (не будем тыкать пальцами ни в кого).
Концепция проста: низкая стоимость + высокое качество. Вообще мы давно уже занимаемся как ботами, так и data science. И вот недавно мы решили провести еще один поток обучения по ботам (возможно последний, ибо из-за обилия говнокурсов спрос сильно упал).
Так вот, если вам интересна тема телеграм ботов, то отпишите в бота @python_academy_robot (не пугайтесь что он на лайвграм, у нас полно нормальных проектов, и мы ничего не скрываем). Все цены будут там.
P.S. По поводу нейронок, если кому интересно, залил небольшой код конволюционной нейросети на github. Задача классическая, распознавание цифр из датасета MNIST. Постараюсь написать статью (либо серию постов) в ближайшее время.
Как вы знаете, мы с Адрианом бросили все силы на создание обучающих курсов, поставленных в противовес огромным компаниям, которые у нас зачастую покупают рекламу на каналах (не будем тыкать пальцами ни в кого).
Концепция проста: низкая стоимость + высокое качество. Вообще мы давно уже занимаемся как ботами, так и data science. И вот недавно мы решили провести еще один поток обучения по ботам (возможно последний, ибо из-за обилия говнокурсов спрос сильно упал).
Так вот, если вам интересна тема телеграм ботов, то отпишите в бота @python_academy_robot (не пугайтесь что он на лайвграм, у нас полно нормальных проектов, и мы ничего не скрываем). Все цены будут там.
P.S. По поводу нейронок, если кому интересно, залил небольшой код конволюционной нейросети на github. Задача классическая, распознавание цифр из датасета MNIST. Постараюсь написать статью (либо серию постов) в ближайшее время.
Проверка на анаграммность
Проверить, являются ли строки анаграммами (например, в результате случайной перестановки букв) поможет класс
Посмотреть код
#string #collections
Проверить, являются ли строки анаграммами (например, в результате случайной перестановки букв) поможет класс
Counter модуля collections.Посмотреть код
#string #collections
Запрос пароля во время выполнения программы
Этот простой пакет позволяет запрашивать у пользователя его пароль, а также получать его имя (под которым он вошёл в систему).
Правда, при работе с паролями стоит знать о том, что не все системы поддерживают скрытие паролей. Python постарается вас об этом уведомить. Если это произойдёт – вы увидите соответствующее предупреждение в командной строке.
Посмотреть код
#tips
Этот простой пакет позволяет запрашивать у пользователя его пароль, а также получать его имя (под которым он вошёл в систему).
Правда, при работе с паролями стоит знать о том, что не все системы поддерживают скрытие паролей. Python постарается вас об этом уведомить. Если это произойдёт – вы увидите соответствующее предупреждение в командной строке.
Посмотреть код
#tips
Загрузка модели в Keras
Библиотека Keras позволяет сохранять модель в такие форматы как YAML и json, однако гораздо удобнее (и нативнее, если можно так выразиться) сохранять модель в формат H5 (hdf5).
Данный формат позволяет сохранить:
📌 Веса модели
📌 Ее архитектуру
📌 loss и metrics
✏️ Для работы с этим форматом вам необходимо установить модуль
После загрузки вы можете обращаться к
Посмотреть код
#Keras #NN
Библиотека Keras позволяет сохранять модель в такие форматы как YAML и json, однако гораздо удобнее (и нативнее, если можно так выразиться) сохранять модель в формат H5 (hdf5).
Данный формат позволяет сохранить:
📌 Веса модели
📌 Ее архитектуру
📌 loss и metrics
✏️ Для работы с этим форматом вам необходимо установить модуль
h5pyПосле загрузки вы можете обращаться к
model с помощью привычных команд.Посмотреть код
#Keras #NN
Интеграл из предыдущего поста можно легко посчитать, если заметить что вклад первого слагаемого равен нулю (нечетная функция интегрируется в симметричных пределах). Остальное берется заменой x = 2*sin(φ).
Правильный ответ: π
Можно посчитать это численно, с помощью пакета sympy. Это библиотека для символьной математики. Для этого импортируем
Далее синтаксис очень сильно напоминает Wolfram Mathematica. Просто передаем в
Посмотреть код
#sympy
Правильный ответ: π
Можно посчитать это численно, с помощью пакета sympy. Это библиотека для символьной математики. Для этого импортируем
Symbol, integrate и sqrt. Далее синтаксис очень сильно напоминает Wolfram Mathematica. Просто передаем в
integrate функцию и кортеж с пределами.Посмотреть код
#sympy
Нахождение близких соответствий в строках
Предположим, вы попали в ситуацию, когда вам понадобилось, задействуя концепцию наподобие расстояния Левенштейна, найти в списке слова, похожие на некую входную строку. Решить эту задачу можно с помощью built-in модуля
Данный метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент задаёт список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент
Посмотреть код
Предположим, вы попали в ситуацию, когда вам понадобилось, задействуя концепцию наподобие расстояния Левенштейна, найти в списке слова, похожие на некую входную строку. Решить эту задачу можно с помощью built-in модуля
difflib.Данный метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент задаёт список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент
n, который задаёт максимальное число возвращаемых совпадений.Посмотреть код
Нравится вам новый стиль постов?
Anonymous Poll
74%
Да, полностью
22%
Да, но разбавляй их слегка лайв постами
4%
Нет, не люблю картинки
Кэширование результатов вызова функций с помощью декоратора
Доводилось ли вам писать функции, которые выполняли какие-нибудь длительные операции чтения-записи, или достаточно медленные рекурсивные вычисления?
Думали ли вы при этом о том, что таким функциям не повредило бы кэширование результатов? Кэшировать результаты вызова функции можно с помощью декоратора
В этом примере мы выполняем GET-запросы, результаты которых кэшируются (кэшировано может быть до 32 результатов). Тут можно увидеть и то, что мы получаем сведения о кэше функции, воспользовавшись методом
Посмотреть код
#functools
Доводилось ли вам писать функции, которые выполняли какие-нибудь длительные операции чтения-записи, или достаточно медленные рекурсивные вычисления?
Думали ли вы при этом о том, что таким функциям не повредило бы кэширование результатов? Кэшировать результаты вызова функции можно с помощью декоратора
lru_cache из модуля functools.В этом примере мы выполняем GET-запросы, результаты которых кэшируются (кэшировано может быть до 32 результатов). Тут можно увидеть и то, что мы получаем сведения о кэше функции, воспользовавшись методом
cache_info.Посмотреть код
#functools
Нахождение часто встречающихся элементов в списке
📌 Нахождение в списке таких элементов, которые встречаются в нём чаще других, это весьма распространённая задача. Решить её можно, например, воспользовавшись циклом
📌 Но такой подход – это конечно пустая трата времени. Решать подобные задачи можно с помощью класса
✏️
Посмотреть код
#collections
📌 Нахождение в списке таких элементов, которые встречаются в нём чаще других, это весьма распространённая задача. Решить её можно, например, воспользовавшись циклом
for и словарём, в котором будут собраны сведения о количестве одинаковых элементов.📌 Но такой подход – это конечно пустая трата времени. Решать подобные задачи можно с помощью класса
Counter из модуля collections.✏️
Counter по сути основан на словаре, хранящем соответствия элементов и количества их вхождений в список. Поэтому соответствующий объект можно использовать как обычный dict.Посмотреть код
#collections
Очистка входных строковых данных
Задача очистки данных, вводимых пользователем, актуальна практически для любой программы.
📌 Иногда данные можно очистить с помощью регулярного выражения.
📌 Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. Здесь пробельные символы
✏️ Это – простой пример, но мы можем его расширить, создавая таблицы переназначения символов с использованием пакета
Такой подход позволяет убирать из строк всё то, что там не нужно.
Посмотреть код
#tips
Задача очистки данных, вводимых пользователем, актуальна практически для любой программы.
📌 Иногда данные можно очистить с помощью регулярного выражения.
📌 Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. Здесь пробельные символы
"\n" и "\t" заменяются на обычные пробелы, а символ "\r" удаляется из строки полностью. ✏️ Это – простой пример, но мы можем его расширить, создавая таблицы переназначения символов с использованием пакета
unicodedata и его функции combining().Такой подход позволяет убирать из строк всё то, что там не нужно.
Посмотреть код
#tips