Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Станьте AI-разработчиком на Python и зарабатывайте от 150.000₽ в месяц 🔥🔥🔥
Мы научим вас создавать и тренировать нейронные сети, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тыс. ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тыс. ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате
На интенсиве будет много практики: создадим 9 нейросетей за 1 вечер:
🧬 Оценка выброса CO2 по параметрам машины
🧬 Сегментация изображения для робота доставщика
🧬 Трекинг людей на видео
🧬 Распознавание речи
и другие
Ведущий интенсива - Senior AI-разработчик и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайшую среду. Вы узнаете, как освоить самую востребованную профессию!
Альтернативный способ создания namedtuple
В качестве альтернативы вы можете передать список, состоящий из имен полей, вместо просто имен полей, разделенных пробелом.
Доступ к элементам в namedtuple возможен как по индексу, так и по идентификатору.
Подписывайтесь на канал 👉@pythonofff
Сохранение и загрузка модели
Передайте model.state_dict() в качестве первого аргумента. Это просто словарь, который сопоставляет слои с их соответствующими изученными параметрами (весами и смещениями).
В качестве второго аргумента дайте имя вашей модели (принято сохранять модели PyTorch с использованием расширений .pth или .pt). Также можно указать полный путь, если вы хотите сохранить его в определенном каталоге.torch.save(model.state_dict(), "cifar_fc.pth")
Если вы хотите загрузить свою модель для логического вывода, используйте torch.load(), чтобы получить сохраненную модель, и сопоставьте изученные параметры с помощью load_state_dict.
Подписывайтесь на канал 👉@pythonofff
Работа с форматированием текста
textwrap — это стандартная библиотека, которая спользуется для форматирования текста в тех случаях, когда нам нужна красивая печать.
Он предлагает функциональность аналогичную текстовым редакторам и текстовым процессорам.
Немного о возможностях:
textwrap.fill() — принимает текст и возвращает отформатированный текст, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
textwrap.dedent() — используется для удаления общего префикса пробела из всех строк в тексте.
textwrap.indent() — используется для добавления текст префикса ко всем строкам в параграфе
Подписывайтесь на канал 👉@pythonofff
Работаем с USB
PyUSB — это библиотека, которая обеспечивает легкий доступ к USB. Имеет поддержку изохронной передачи, если её поддерживает бэкенд.
Основные методы для работы с USB, такие как find(), show_devices() и т. д, хранятся в usb.core.
Пакет usb.util содержит вспомогательные функции.
Функция find() используется для поиска устройств, подключенных к системе.
Также есть реализация внешнего и внутреннего интерфейса, для изоляции API от деталей реализации системы. Связующим звеном между двумя слоями является интерфейс IBackend.
PyUSB поставляется со встроенными бэкэндами для libusb 1.0, libusb 0.1 и OpenUSB.
Подписывайтесь на канал 👉@pythonofff
Валидация email-адресов
Для проверки корректности email-адреса а также действительности его существования существует неплохой модуль validate_email.
Модуль предоставляет одну основную одноименную функцию, предназначенную для валидации адреса, с помощью уже написанных регулярных выражений. Также в функции реализована проверка mx-записи у сервера и существования переданного адреса, за это отвечают необязательные параметры-флаги функции verify и check_mx.
Для обращения validate_email к DNS записям необходимо предварительно установить модуль py3dns.
Подписывайтесь на канал 👉@pythonofff
Работаем с данными
pandas - это мощный инструмент для анализа данных в Python. С помощью данного фреймворка, работа с «реляционными» или «помеченными» данными простой и интуитивно понятной. Сегодня мы применим его для модификации csv файла.
Чтобы загрузить датафрейм из файла (пример), используем метод pd.read_csv().
Применим фильтр по полю sepal.length > 5. В SQL данная операция выглядела бы таким образом:
SELECT * FROM df WHERE sepal.length > 5.
В pandas же для получения необходимых строк фрейма можем использовать метод loc, передав в нее необходимый фильтр:
df = df.loc[df['sepal.length'] > 5]
Для удаления одной или нескольких колонок можно использовать метод df.drop():
df = df.drop(columns=['petal.width', 'petal.length'])
При сохранении в файл мы можем дополнительно указать pandas не добавлять генерирующийся индекс строкам, если он нам не нужен:
df.to_csv('new_iris.csv', index = False)
Подписывайтесь на канал 👉@pythonofff
Модули Dataset и DataLoader
Как и Tensorflow, PyTorch имеет несколько наборов данных, включенных в пакет (например, Text, Image и Audio). В этом руководстве будет использоваться один из таких встроенных наборов данных изображений — CIFAR10.
Эти датасеты очень распространены и широко задокументированы в сообществе ML. Они отлично подходят для прототипирования и сравнительного анализа моделей, поскольку вы можете сравнить производительность своей модели с тем, чего смогли достичь другие.
Подписывайтесь на канал 👉@pythonofff
Помощь в трудоустройстве в IT-сфере!
По всей России объявили бесплатную программу на шестимесячное обучение по IT-cпециальностям.
Запись на участие в программе продлится до конца июля, но чтобы туда попасть, нужно пройти специальный профтест.
По результату тестирования сразу узнаете, какая профессия вам подойдет, и проходите ли вы на бесплатное обучение.
Перейти на сайт
#реклама 16+
urban-university.ru
О рекламодателе
Валидация данных с Pydantic
Pydantic — это библиотека для парсинга и валидации данных, в котором атрибуты класса имеют статическую типизацию.
Эта типизация используется в момент создания обьекта класса для проверки значений.
Пакет хорош в ситуациях когда вам нужно распарсить какой-то json, и все это превращается в рутину: проверка структуры json, необходимых полей, значений и так далее.
Также имеется поддержка множества других типов данных, помимо стандартных, таких как почта, url адрес, номер платежных карт.
Полноценный пример есть на картинке выше. Документация находится здесь.
Подписывайтесь на канал 👉@pythonofff
Пример работы метода lower(): проверяем пользовательский ввод
Скрипт задает пользователю вопрос "What color is the sun?" («Какого цвета солнце?») и ждет от него ответа. Затем программа проверяет, совпадает ли ответ с "yellow" (желтый), и если да, то печатает "Correct!" («Правильно!»). Если пользователь введет другой ответ, программа напечатает "That is not the correct color!" («Это неправильный цвет!»).
Подписывайтесь на канал 👉@pythonofff
Высшее образование дистанционно
Московский технологический институт от 5300 ₽/мес.
Набор в августе!
— Высшее образование в московском вузе без выезда на сессии.
— Полностью дистанционный онлайн-формат.
— Обучайся дома, на работе, в путешествии.
— Диплом государственного образца.
— 73 направления и программы обучения.
— Программа колледж + вуз без ЕГЭ.
Скидка 10% на обучение при оплате за год.
Перейти на сайт
#реклама 16+
tl.mti.edu.ru
О рекламодателе
Что следует учитывать при использовании метода lower()
Метод lower() делает довольно простую вещь. Он создает новую строку, в которой все прописные буквы меняются на строчные. Но есть несколько моментов, о которых следует помнить при его использовании.
Строки неизменяемы
Строки являются неизменяемым типом данных. Это означает, что их нельзя поменять после создания, только перезаписать заново. Поэтому исходная строка после использования метода lower() остается неизменной.
Подписывайтесь на канал 👉@pythonofff
Цепочка исключений
Для формирования цепочек исключений используется ключевое слово from, после которого требуется указать ещё одно исключение. Это исключение будет подвязано к вызванному в атрибут __cause__ (поддерживает запись).
В результате, если вызванное исключение не обработано, то на вывод будут отправлены оба исключения.
Подписывайтесь на канал 👉@pythonofff
Дистанционное обучение для детей с 1-11 класс
С получением аттестата гос.образца
Индивидуальный подход, гибкое расписание, подготовка к экзаменам ЕГЭ и ОГЭ, живые уроки с учителями
Оставьте заявку на консультацию
Узнать больше
#реклама 16+
school-bit.ru
О рекламодателе
Чтение аудио-файлов в массив numpy
Одним из основных действий в начале аудиоанализа конечно же является чтение аудио-файла и выгрузка его звукового временного ряда в виде массива numpy. Для этих целей хорошо подходит модуль scipy.io.wavfile, входящий в состав библиотеки scipy и предоставляющий функции для чтения и записи wav файлов.
Для чтения используем функцию read, которая возвращает частоту дискретизации и массив numpy со значениями звукового давления для каждого кадра. Т.к. файлы формата wav могут состоять из одного(моно) либо из двух(стерео) каналов, то и массив numpy будет, соответственно, являться одномерным либо двумерным (по подмассиву на каждый канал).
В качестве примера также добавили построение в matplotlib графика сигнала по полученным значениям.
Подписывайтесь на канал 👉@pythonofff
Работа с датасетами
Datasets — легкая и расширяемая библиотека для обмена и доступа к наборам данных (они же датасеты).
Наборы данных также предоставляют доступ к оценочным метрикам, предназначенных для того, что бы сообщество могло делиться новыми наборами данных.
Из плюсов библиотеки можно выделить следующее:
— Кэширование данных;
— Совместимость с NumPy, pandas, PyTorch, TenserFlow 2 и JAX;
— Все наборы данных отображаются в памяти.
Основные методы, которые понадобятся в работе с датасетами:
list_dataset() — показывает доступные датасеты;
load_dataset() — создает экземпляр датасета;
list_metrics() — показывает доступные метрики;
load_metric() — создает экземпляр метрики.
Подписывайтесь на канал 👉@pythonofff
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
/channel/Excel_lifehack
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Обучение модели
Укажите количество epochs, на которых вы хотите обучить модель. Каждая эпоха будет проходить цикл train, который выводит прогресс каждые 2000 выборок. Затем он проверяет модель на тестовом наборе и выводит точность и потери на тестовом наборе.
Подписывайтесь на канал 👉@pythonofff
Определение метода тестирования
Это нужно для того, чтобы мы могли оценивать нашу модель и выводить точность на тестовом наборе. Большие отличия от метода тестирования заключаются в том, что мы используем model.eval(), чтобы перевести модель в режим тестирования, и torch.no_grad(), который отключит вычисление градиента, так как мы не используем обратное распространение во время тестирования. Наконец, мы вычисляем средние потери для набора тестов и общую точность.
Подписывайтесь на канал 👉@pythonofff
Результат обратного распространения и обучения
Для шага обратного распространения нам нужно сначала запустить optimizer.zero_grad(). Это устанавливает градиент в ноль перед запуском обратного распространения, поскольку мы не хотим накапливать градиент за последующие проходы.
Метод loss.backward()
использует потери для вычисления градиента, затем мы используем Optimizer.step()
для обновления весов.
Подписывайтесь на канал 👉@pythonofff
Уже слышали про Platform V App Environment?
5 сентября в 11:00 пройдет вебинар от СберТеха об экосистеме инструментов для создания и масштабирования пользовательских порталов и приложений
Приходите, чтобы познакомиться с решением, которое объединяет компоненты для создания и масштабирования типового рабочего места сотрудника и узнать о том, как:
- снизить нагрузку на внутреннюю ИТ-поддержку
- упростить управление аутентификацией в большом количестве приложений и ролей
- существенно снизить потребление vCPU
- минимизировать искажения в UI при масштабировании
- держать рост нагрузки без сбоев и зависаний
- формировать большое количество отчетов и документов
Будет интересно! Регистрация по ссылке ниже
Зарегистрироваться
#реклама 16+
platformv.sbertech.ru
О рекламодателе
Функция zip в Python
Функция zip принимает на вход в качестве аргументов итерируемые объекты, а возвращает итератор из кортежей, где i-й кортеж содержит i-й элемент из каждой последовательности.
Но если передать на вход итерируемые объекты неравной длины, то количество кортежей будет сформировано по самой короткой последовательности, а оставшиеся элементы в более длинных будут игнорироваться, что может привести к нежелательным результатам.
В python 3.10 в функцию был добавлен необязательный аргумент strict, который является флагом проверки входных итерируемых объектов на равенство их длин. В случае, если длины не равны, то будет выброшено исключение ValueError.
В случае же если требуется составить кортежи по всем элементам последовательности в независимости от равенства длин, в модуле itertools существует функция zip_longest. Данная функция работает точно также как zip, но заменяет отсутствующие элементы значением, переданным в fillvalue, которое по умолчанию равно None.
Подписывайтесь на канал 👉@pythonofff
Почему так происходит?
Программа проверяет, совпадает ли пользовательский ответ со строкой yellow. Однако — Yellow с заглавной буквой Y — это совершенно другая строка.
Вы можете легко исправить это, используя метод lower() и внеся небольшое изменение в программу.
Подписывайтесь на канал 👉@pythonofff
Высшее образование дистанционно. Набор в сентябре!
Московский технологический институт от 5300 ₽/мес.
— Высшее образование в московском вузе без выезда на сессии.
— Полностью дистанционный онлайн-формат.
— Обучайся дома, на работе, в путешествии.
— Диплом государственного образца.
— 73 направления и программы обучения.
— Программа колледж + вуз без ЕГЭ.
Скидка 10% на обучение при оплате за год.
Перейти на сайт
#реклама 16+
tl.mti.edu.ru
О рекламодателе
Метод lower() возвращает новую строку
lower() возвращает новую строку. Этот момент логически вытекает из предыдущего. Следовательно, если вы хотите использовать результат работы метода в дальнейшем, вам нужно сохранить его в новую переменную.
Подписывайтесь на канал 👉@pythonofff
Выполняем код по расписанию
Часто от программиста требуется написать код, который должен выполняться в определенный промежуток времени или по расписанию. Для решения этой проблемы существует много решений, но одно из них — это библиотека aiocron.
Она позволяет просто описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция attime будет выполняться каджую минуту с 6 утра до 10 вечера в рабочие дни недели. Подробнее о написании своих расписаний можно почитать тут.
Подписывайтесь на канал 👉@pythonofff
Ведем набор учеников 3-10 классов на новый учебный год!
Московская школа программистов - это не курсы, а школа с государственной лицензией, которая обучает детей IT с 2001 года. Мы сотрудничаем с МФТИ, НИУ ВШЭ, Яндекс и Физтехпарк
Что получит ребенок, в результате обучения:
- Участие и победы в олимпиадах всероссийского и международного уровня
- Поступление в престижные технические вузы России и работу в известных IT-компаниях: Apple, Google, Yandex, Nvidia и других
- Практику на реальных IT-проектах
- Усидчивость, целеустремленность и умение работать в команде
- Сдача ЕГЭ/ОГЭ на высокие баллы
Сейчас идет набор в виртуальный класс. В этом формате, дети в небольших группах обучаются с преподавателем онлайн в реальном времени.
Эффективно как очно.
Позаботьтесь о том, чтобы ребенок стал востребованным IT-специалистом!
Зарегистрироваться
#реклама
vc.informatics.ru
О рекламодателе
Временные файлы
В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями.
Функция TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект.
Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера.
Также другие процессы и приложения не смогут получить доступ к этому временному файлу.
Подписывайтесь на канал 👉@pythonofff
Что такое строка?
Строка — это тип данных в Python. Строка записывается как последовательность символов, заключенная в одинарные или двойные кавычки.
Подписывайтесь на канал 👉@pythonofff