[*] pr0gramm1ng basics
24 subscribers
50 photos
11 videos
20 files
41 links
Обзор различных кодов и импортируемых библиотек, информация об обновлениях и многое другое у меня на канале.
Download Telegram
[*] pr0gramm1ng basics
Photo
Библиотека Tensorflow на python 🐍

Tensorflow - мощный фреймворк с открытым исходным кодом для машинного обучения и разработки нейросетей, разработанный компанией Google.

Установка:

pip install tensorflow 

Также в этой библиотеке есть встроенный API Keras. Он полностью интегрирован в Tensorflow.

🤖 Пример нейросети на Tensorflow:

import tensorflow as tf #импортируем

# 1. Загрузка данных (встроенный датасет)
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0 # Нормализация

# 2. Построение модели
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)), # Сглаживаем изображение 28x28 в вектор
tf.keras.layers.Dense(128, activation='relu'), # Полносвязный слой на 128 нейронов
tf.keras.layers.Dropout(0.2), # Регуляризация для борьбы с переобучением
tf.keras.layers.Dense(10) # Выходной слой на 10 классов (цифры 0-9)
])

# 3. Компиляция модели
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])

# 4. Обучение модели
model.fit(x_train, y_train, epochs=5)

# 5. Оценка качества
model.evaluate(x_test, y_test, verbose=2)

Для каких задач чаще всего используется Tensorflow:

1. Компьютерное зрение (Computer Vision). Например библиотека Mediapipe.

2. Обработка естественного языка. Например, определение тональности (NLTK + Tensorflow), машинный перевод (Tensorflow + Transformers (Hugging Face)), генерация текста (чат-боты)

3. Обработка звука и речи (Tensorflow Audio или Tensorflow + Librosa)

🔥 Щас на этой библиотеке я работаю над созданием своей нейросети. Она будет распознавать цифры, который я ей написал. Вчера 5 часов делал датасет и переобучил нейросеть. Сегодня придётся новый делать, поэтому не знаю когда дам её код. Стабильно библиотека работает на версии Python 3.8 🔥
MyFirstNeiro.rar
2.8 MB
Сделал свою нейросеть на python 🐍 при помощи библиотеки TensorFlow 🔥

Скрипты писал меньше часа, а саму нейросеть обучал почти 2 дня (методом проб и ошибок).

Так вот, что она делает?

🤖 Моя нейросеть умеет распознавать цифры 0-9. Обучена на данных MNIST (также сделал скрипты для создания своего датасета для моей нейросети).

Зависимости:

- TensorFlow (версия: 2.13.0)
- NumPy (версия: 1.24.3)
- Pillow (версия: 10.4.0)
- Pygame (версия: 2.6.1)

Нейросеть зовут - Овощ 🍆 (ну просто она реально овощ). Версия Python 3.8

GitHub репозиторий: my_first_neiro
👍1
Библиотека PyUSB в python 🐍

Это библиотека нужна для работы с USB устройствами (не всеми). Она является низкоуровневой и самой распространенной библиотекой для работы с USB. Эта библиотека поддерживается на Windows, Linux и MacOs (кроссплатформенная).

Пример кода на PyUSB:

import usb.core
import usb.util

# Найти устройство по VID и PID
dev = usb.core.find(idVendor=0x1234, idProduct=0x5678)

if dev is None:
raise ValueError("Устройство не найдено")

# Установить конфигурацию
dev.set_configuration()

# Отправить данные
dev.write(1, b'Hello USB')

Что такое PID и VID?

PID (Product id) - это идентификатор продукта. Он придумывается производителем для какого-либо устройства

VID (Vendor id) - это идентификатор производителя. Он назначается организацией USB-IF (официальная ассоциация USB)

👉 Вместе VID и PID полностью идентифицируют конкретную модель устройства

Вот пример кода для того чтобы узнать VID, PID и название продукта (product):

import usb.core

for dev in usb.core.find(find_all=True):
print(hex(dev.idVendor), hex(dev.idProduct), dev.product)

Есть конечно и библиотеки получше, чем PyUSB (например, hidapi (или hid), pyserial), но пока что решил рассказать про неё

Документация 👉 PyUSB 👈
Превращаем голос в текст 🔥

Чтобы перевести голос в текст в python можно воспользоваться библиотекой speech_recognition.

Speech_recognition - библиотека для распознавания речи в python. Она поддерживает несколько движков и API

Установка:

pip install SpeechRecognition
# Для работы с микрофоном
pip install pyaudio

Пример с обработкой звука из микрофона:

import speech_recognition as sr

# Создаем распознаватель
recognizer = sr.Recognizer()

def recognize_speech():
with sr.Microphone() as source:
print("Скажите что-нибудь...")

# Настройка для уменьшения шума
recognizer.adjust_for_ambient_noise(source, duration=1)

# Запись аудио
audio = recognizer.listen(source, timeout=5)

# Распознавание через Google
text = recognizer.recognize_google(audio, language="ru-RU")
print(f"Вы сказали: {text}")

recognize_speech()

В этом примере мы используем эту библиотеку для распознавания записанной нами речи через микрофон.

Эта библиотека также поддерживает работу с файлами (перевод звуков из файла в текст):

import speech_recognition as sr

def recognize_from_file(filename):
recognizer = sr.Recognizer()

with sr.AudioFile(filename) as source:
# Чтение всего аудиофайла
audio = recognizer.record(source)

text = recognizer.recognize_google(audio, language="ru-RU")
return text

# Использование
result = recognize_from_file("audio.wav")
print(result)

Эта библиотека подходит для распознавания голоса и его перевода в текст, но чаще всего используют другие библиотеки, но для начала её хватит
Библиотека socket в python 🐍

Socket - это библиотека для обмена данными между компьютерами. С её помощью можно установить соединение какого-либо компьютера (клиента) к другому компьютеру (серверу) и по сети передавать данные. Эта библиотека кроссплатформенная (подходит для Linux, Windows, MacOs). Также она поддерживает различные протоколы (TCP, UPD, RAW сокеты).

Пример кода клиента:

import socket

def start_client():
# создаём объект сокета с TCP подключением к IPv4
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# подключаем клиента к серверу
client_socket.connect(('localhost', 12345))

message = "Привет, сервер!"
# отправляем сообщение серверу
client_socket.sendall(message.encode())
# получаем ответ от сервера
response = client_socket.recv(1024)
print(f"Ответ сервера: {response.decode()}")
# закрываем сокет
client_socket.close()

if __name__ == "__main__":
start_client()

Пример сервера с socket:

import socket

def start_server():
# создаём объект сокета для сервера с TCP подключением и IPv4
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# привязываем к адресу и порту server_socket.bind(('localhost', 12345))
# слушаем
server_socket.listen(1)
print("Сервер запущен...")

while True:
# принимаем подключение клиента
client_socket, addr = server_socket.accept()
print(f"Подключен клиент: {addr}")
# получаем данные от клиента
data = client_socket.recv(1024)
print(f"Получено: {data.decode()}")

# Отправляем данные обратно
client_socket.sendall(data)
client_socket.close()

if __name__ == "__main__":
start_server()

Семейства адресов, которые может использовать socket:

1. Socket.AF_INET - это IPv4

2. Socket.AF_INET6 - это IPv6

3. Socket.AF_UNIX - это UNIX-сокеты

Типы сокетов:

1. Socket.SOCK_STREAM - TCP (надёжный, с установкой соединения)

2. Socket.SOCK_DGRAM - UPD (ненадёжный, без соединения)

С помощью библиотеки socket можно реализовать простейший мессенджер в консоли, чтобы обмениваться информацией с клиентом и сервером
hand.py
4.3 KB
Программа на Mediapipe для распознавания 7 жестов рук (палец вверх/вниз, ножницы, бумага, камень, рок 🤟, указательный палец вверх)

Требования 🛠️

- Python 3.10
- MediaPipe
- NumPy
- OpenCV

Также этот скрипт есть на моём 👉 GitHub 👈 с зависимостями
🔥 Всем привет. Сегодня праздник. Моё видео на канале впервые набрало 1000 просмотров, 50+ лайков и почти 30 закрепов. Также за это видео на мой канал подписались 7 человек. Такого ещё не было, но я крайне рад этому сообщению. Поздравляю вас тоже с этим прекрасным событием 🥰
🔥1
Библиотека NLTK в python 🐍

NLTK (Natural Language Toolkit) — это ведущая платформа для работы с естественным языком (NLP) в Python. Она предоставляет простые в использовании интерфейсы для более чем 50 корпусов и лексических ресурсов, а также набор библиотек для классификации, токенизации, стемминга, тегирования, синтаксического анализа и семантических рассуждений.

Установка NLTK:
pip install nltk

Настройка:

import nltk

# Загрузка необходимых ресурсов
nltk.download('punkt') # Токенизатор
nltk.download('stopwords') # Стоп-слова
nltk.download('wordnet') # Лемматизатор
nltk.download('averaged_perceptron_tagger') # POS-теггер

🔥 Токенизация - это разбиение текста на слова, предложения и т.д

Пример токенизации в NLTK:

import nltk
from nltk.tokenize import word_tokenize, sent_tokenize

text = "Hello world! This is NLTK. It's awesome."
sentences = sent_tokenize(text) # Разбиение на предложения
words = word_tokenize(text) # Разбиение на слова

print(sentences) # ['Hello world!', 'This is NLTK.', "It's awesome."]
print(words) # ['Hello', 'world', '!', 'This', 'is', 'NLTK', '.', 'It', "'s", 'awesome', '.']

🔥 Стемминг и лематизация - приведение слов к их базовой форме.

Пример стемминга в NLTK:

from nltk.stem import PorterStemmer, WordNetLemmatizer

stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()

words = ["running", "flies", "happily", "better"]
stems = [stemmer.stem(word) for word in words]
lemmas = [lemmatizer.lemmatize(word) for word in words]

print(stems) # ['run', 'fli', 'happili', 'better']
print(lemmas) # ['running', 'fly', 'happily', 'better']

🔥 Тегирование - присвоение меток элементам текста.

Пример тегирования текста по частям речи в NLTK:

import nltk
from nltk import pos_tag
from nltk.tokenize import word_tokenize

text = "The quick brown fox jumps over the lazy dog"
tokens = word_tokenize(text)
tags = pos_tag(tokens)

print(tags)
# [('The', 'DT'), ('quick', 'JJ'), ('brown', 'JJ'), ('fox', 'NN'),
# ('jumps', 'VBZ'), ('over', 'IN'), ('the', 'DT'), ('lazy', 'JJ'), ('dog', 'NN')]

Теги для определения части речи:

- NN это существительное единственного числа

- NNS это существительное множественного числа

-VB это глагол в неопределённой форме

-VBD это глагол в прошедшем времени

- VBG это причастие

- JJ это прилагательное

- RB это наречие

- DT это определитель (the, a в английском)

- IN это предлог

- PRP это личное местоимение

🔥 Работа со стоп словами

Пример удаления малозначимых слов в NLTK:

from nltk.corpus import stopwords

nltk.download('stopwords')
stop_words = set(stopwords.words('english'))

text = "This is a sample sentence showing off stop word filtration"
words = word_tokenize(text)
filtered_words = [word for word in words if word.lower() not in stop_words]

print(filtered_words) # ['sample', 'sentence', 'showing', 'stop', 'word', 'filtration']

🔥 Анализ тональности

Пример анализа тональности в NLTK:

from nltk.sentiment import SentimentIntensityAnalyzer

nltk.download('vader_lexicon')
sia = SentimentIntensityAnalyzer()

text = "I love this product! It's amazing."
scores = sia.polarity_scores(text)

print(scores) # {'neg': 0.0, 'neu': 0.294, 'pos': 0.706, 'compound': 0.8516}

Библиотеку NLTK можно использовать в работе нейросетей, например, для извлечения полезной информации из текста, который дал пользователь
neiro.py
4.8 KB
Всем привет 👋

Я создал новую нейросеть - КОРНЕПЛОД. Эта нейросеть умеет определять что изображено на изображении (но на изображениях должны быть изображены только самолёты, коты, собаки, олени, лягушки, фуры, автомобили, корабли, лошади и птицы).

Зависимости (есть на GitHub в файле requirements.txt):

- Tensorflow 2.13.0
- NumPy 1.24.3
- Pillow 10.4.0

Скрипт работает на версии Python 3.8

Проект на 👉 Github 👈

#project #python #neiro_python_korneplod
emotions.py
2.9 KB
Привет всем 👋

Сделал новый скрипт, который определяет какую эмоцию показывает лицо на изображении с помощью библиотек RetinaFace, DeepFace и Pillow

Технологии:
- Python 3.8
- DeepFace
- RetinaFace
- Pillow

Также работа есть на 👉 GitHub 👈

#project #python #emotions_python_deepface
[*] pr0gramm1ng basics
emotions.py
Вот проводил тест для этой программы. Она обводит лицо человека на фото (если оно есть) и пишет эмоцию (например sad, happy)
Привет 👋

Я думаю многие из вас пытались сделать свой сайт. Но написание кода для этого сайта это только пол беды, ведь после написания сайта, его надо его выложить в интернет. Для этого надо сделать его хостинг и зарегистрировать доменное имя (и это всё не бесплатно). Но для этого есть решение 🧐

GitHub Pages 📃 - это бесплатный хостинг своего сайта при помощи аккаунта GitHub. Для этого надо создать репозиторий с названием: username.github.io, где username - это название вашего GitHub аккаунта (например если название аккаунта - Octocat, то репозиторий должен называться octocat.github.io)

Если у вас уже есть файлы сайта (.html, .css и .js), то их можно добавить и ваш сайта должен быть доступен в браузере. Если у вас нет файлов для сайта, то просто добавьте файл README.md (его GitHub Pages воспримет как файл .html и создаст вам сайт)

🔗 Как найти ссылку, которая будет вести к вашему сайту?

Для этого в вашем репозиторий перейдите в Настройки (Settings) -> Станицы (Pages). В этом разделе и должна быть ваша ссылка. А если не нашли её, то она должна выглядеть так: https://username.github.io (где username - это ваш ник в GitHub)

Вообщем если вы хотите бесплатно залить свой сайт в интернет, то используйте GitHub Pages 📃
👍1
Фреймворк Playwright в python 🐍

🔗 Playwright - это мощный фреймворк для автоматизации браузеров. С его помощью можно имитировать действия пользователя на сайте (например, проходить авторизацию пользователя, кликать, парсить данные). Этот фреймворк поддерживает три основных браузерных движка: Chromium, Firefox и Webkit.

Установка Playwright:

pip install playwright 

🔥 Установка браузеров:

# все браузеры 
playwright install
# какого-то одного браузера
playwright install chromium
# какого-то одного браузера с какой-то определенной версией
playwright install chromium@latest

Пример кода с использованием фреймворка Playwright:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
# запускаем браузер
browser = p.chromium.launch(headless=False) # headless=False чтобы видеть браузер
page = browser.new_page()

# идем на страницу
page.goto("https://httpbin.org/forms/post")

# заполняем форму
page.locator('input[name="custname"]').fill("Иван Иванов")
page.locator('input[value="medium"]').check()
page.locator('textarea[name="comments"]').fill("Автоматизированный комментарий!")

# делаем скриншот до отправки
page.screenshot(path="form_filled.png")

# кликаем кнопку отправки
page.locator('text=Submit').click()

# делаем скриншот результата
page.screenshot(path="form_result.png")

# закрываем браузер

browser.close()

Этот фреймворк поможет в автоматизации работы на сайте (или например, автоматической проверки вашего сайта в браузере)

#python #libraries
🔥1
Почему библиотека Pathlib лучше, чем os для работы с файлами в python 🐍

🌟 Простите, что так долго не было постов. Сегодня я решил в этом посте затронуть тему работы с файлами на python с помощью библиотеки os и библиотеки Pathlib и сравнить их.

⁉️ Почему библиотека Pathlib (Я считаю) лучше, чем os?

🧑‍🦳 1. Os это уже довольно старая библиотека. Pathlib предлагает нам новый подход к работе с папками и файлами. Например, как будет выглядеть код для объединения путей на os:

import os
path = os.path.join("data", "raw", "input.json")
print(path) # 'data/raw/input.json'

И как на Pathlib:

from pathlib import Path
path = Path('data') / 'raw' / 'input.json'
print(path) # data/raw/input.json

👀 Я думаю разница видна.

📝 2. Библиотека Pathlib будет более читабельной и удобной, чем os.

Можете просто сравнить два выше показанных кода

🔥 3. Библиотека Pathlib кроссплатформенная

🤖 В отличие от библиотеки os, библиотека Pathlib является кроссплатформенная. Она сама подстраивается к вашей операционной системе.

🔥 4. Объектно-ориентированный подход

💨 У библиотеки Pathlib при создании какого либо путя с помощью Path, создаётся объект класса Path, что позволяет работать с его атрибутами. У os этого нет, поэтому приходится работать просто со строками

Таким образом, в своих проектах лучше использовать библиотеку Pathlib, так как с её помощью код будет чище и читабельнее. Также она является более современной, чем библиотека os, но выбор всё равно за вами

#python #libraries
🔥1
[*] pr0gramm1ng basics
Photo
Всем привет 👋

(😓 Сорян за отсутствие, делаю новый проект почти на 1000 строк кода. Скоро появится здесь, на гитхабе и в тик токе)

🔗 Matplotlib - мощная и гибкая библиотека для создания самых разных анимированных и интерактивных графиков. Эта библиотека может создавать: линейные графики, столбчатые диаграммы, гистограммы, круговые диаграммы и многое другое

😎 Для создания графиков в основном mathplotlib использует pyplot

Вот пример графика синусоиды:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100) #создаём массив из 100 равномерно распределённых чисел от 0 до 10 включительно

y = np.sin(x) #вычимляеи синус каждого элемента массива

plt.figure(figsize=(10, 6)) #создаём новый график 10 на 6 дюймов

plt.plot(x, y, 'b-', linewidth=2, label='sin(x)') #создаём график, где по оси x мы ставим значение переменной x, по оси y ставим значения y

# 'b-' - создаём линию из - синего (blue) цвета

# linewidth - устанавливаем толщину линий графика

# label - задаём метку для legend()

plt.title('Синусоида') #устанавливаем заголовок

plt.xlabel('X') #подписываем ось x

plt.ylabel('Y') #подписываем ось y

plt.legend() #отображаем легенду на графике

plt.grid(True) #включаем отображение сетки

plt.show() #показываем график

# или

plt.savefig('graphic.png') #сохраняем график в файл

plt.close() #освобождаем память от фигур

🔥 На изображении показан график, который мне выдал mathplotlib. Если увеличить в linspace 2 параметр (вместо 10 псотавить другое число), то синусоида будет либо увеличиваться или уменьшаться

Вообщем, для создания графиков лучше всего использовать matplotlib. Также к этой библиотеке есть дополнение (по моему seaborn)

#python #libraries
🔥1