پایتون ( Machine Learning | Data Science )
23.6K subscribers
469 photos
57 videos
103 files
335 links
◀️اینجا با تمرین و چالش با هم پایتون رو یاد می گیریم

بانک اطلاعاتی پایتون
پروژه / code/ cheat sheet
+ویدیوهای آموزشی

+کتابهای پایتون
تبلیغات:
@alloadv

🔁ادمین :
@maryam3771
Download Telegram
gTTS (Google Text-to-Speech) - Python library and command line tool (CLI) for interacting with the Google Translate text-to-speech API.

You can use it to write spoken text to an MP3 file, an object-like file (bytestring) for further audio processing, or directly to standard output.

Peculiarities:
- A customizable tokenizer that allows you to voice text of any length while maintaining correct intonation, abbreviations, decimals and much more.
- Ability to configure text pre-processing to correct pronunciation

Installation:
pip install gTTS

Example usage on the command line:
gtts-cli 'hello' --output hello.mp3

Or in a Python module:
from gtts import gTTS
tts = gTTS('hello')
tts.save('hello.mp3')


🖥 GitHub
🟡 Docks



#library
#python

🆔 @Python4all_pro
🖥 محاسبه مشتق و انتگرال ها در پایتون

اگر ناگهان با نیاز به محاسبه انتگرال/مشتقات در پایتون مواجه شدید ، می‌توانید این کار را با استفاده از کتابخانه sympy انجام دهید.

pip install sympy

🖥 GitHub


🆔 @Python4all_pro
استفاده از پردازش چند هسته‌ای CPU در پایتون

پایتون به کمک کتابخانه‌های مختلفی امکان بهره‌برداری از پردازنده‌های چند هسته‌ای را فراهم می‌کند. این قابلیت به خصوص برای اجرای همزمان وظایف در برنامه‌های بزرگ و پیچیده بسیار مفید است. در این آموزش، از کوچک‌ترین برنامه‌ها تا بزرگ‌ترین و پیچیده‌ترین برنامه‌ها، روش‌هایی برای استفاده از پردازش چند هسته‌ای را معرفی می‌کنیم.

مثال ساده: پردازش همزمان وظایف ساده

برای شروع، یک برنامه ساده با استفاده از کتابخانه‌ی multiprocessing ایجاد می‌کنیم که چندین وظیفه را همزمان اجرا کند.

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

for p in processes:
p.join()

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان استفاده می‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برای ۲ ثانیه متوقف می‌شایجاد و شروع فرآیندهاآیندها:
با استفاده از multiprocessing.Process، پنج فرآیند ایجاد می‌کنیم و آنها را با استفاده از start() آغاز می‌کنمنتظر ماندن برای اتمام فرآیندهاآیندها**:
با استفاده از join()، مطمئن می‌شویم که تمامی فرآیندها قبل از پایان یافتن برنامه اصلی به اتمام رسیده‌اند.

مثال پیشرفته: استفاده از Pool برای مدیریت وظایف

برای مدیریت بهتر تعداد زیادی از وظایف، می‌توان از کلاس Pool استفاده کرد. این روش به شما امکان می‌دهد که تعداد ثابتی از فرآیندها را ایجاد کرده و وظایف را بیکد:ید.

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with multiprocessing.Pool(processes=4) as pool:
pool.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان اتعریف تابع worker*تعریف تابع worker**:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برااستفاده از Pool **استفاده از Pool**:
با استفاده از multiprocessing.Pool، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

مثال پیشرفته‌تر: استفاده از concurrent.futures برای مدیریت وظایف

کتابخانه‌ی concurrent.futures یکی دیگر از ابزارهای پایتون برای مدیریت پردازش‌های همزمان است. این کتابخانه برای ساده‌تر کردن استفاده کد: طراحی شده است.

کد:

from concurrent.futures import ProcessPoolExecutor
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with ProcessPoolExecutor(max_workers=4) as executor:
executor.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی concurrent.futures و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرتعریف تابع worker‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپساستفاده از ProcessPoolExecutorاستفاده از ProcessPoolExecutor**:
با استفاده از ProcessPoolExecutor، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

استفاده از پردازش چند هسته‌ای در پایتون می‌تواند به بهبود کارایی برنامه‌ها کمک کند. با استفاده از کتابخانه‌هایی مانند multiprocessing و concurrent.futures، می‌توان وظایف مختلف را به طور همزمان اجرا کرد و از توان پردازشی سیستم به بهترین نحو استفاده کرد.

✔️ کانال آموزش پایتون برای همه


🆔 @Python4all_pro
Extract Text from Image using Python




#Code

🆔 @Python4all_pro
Media is too big
VIEW IN TELEGRAM
modern GUIs in Python [ with tkinter ]

This tutorial covers everything you need to know about user interfaces in Python. We will go over all of tkinter, Python's default GUI framework, cover all the basics and then create a BMI app, a calculator and a photoshop style image editor.
If you enjoy this course, consider buying the tutorial that covers 7 additional apps: A responsive weather app, the ios stopwatch, a stock market tracker, a map viewer, a paint app, a snake game and qrcode generator


Code: 
https://github.com/clear-code-projects/tkinter-complete 

#پروژه

🆔 @Python4all_pro
📚 آموزش ساخت و تلفیق سیستم AI در برنامه پایتون 📚

سلام دوستان! امروز می‌خوایم یک سیستم هوش مصنوعی (AI) رو با استفاده از PyTorch بسازیم و سپس اون رو در یک برنامه پایتون تلفیق کنیم. این آموزش برای کسانی که می‌خوان اصول پیاده‌سازی و استفاده از هوش مصنوعی در برنامه‌های کاربردی رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️

نصب PyTorch
برای نصب PyTorch از دستور زیر استفاده کنید:
pip install torch torchvision

2. آماده‌سازی داده‌ها 📋

در این آموزش از مجموعه داده‌های MNIST استفاده می‌کنیم که شامل تصاویر دست‌نویس اعداد 0 تا 9 است.

import torch
import torchvision
import torchvision.transforms as transforms

# تعریف تبدیل‌ها
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])

# دانلود و بارگذاری مجموعه داده‌های آموزشی و تست
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=True)

testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=32, shuffle=False)

3. تعریف مدل AI 📈

یک شبکه عصبی پیچیده برای تشخیص اعداد دست‌نویس تعریف می‌کنیم.

import torch.nn as nn
import torch.nn.functional as F

class ComplexNN(nn.Module):
def __init__(self):
super(ComplexNN, self).__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(64 * 7 * 7, 128)
self.fc2 = nn.Linear(128, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x

net = ComplexNN()

4. تعریف تابع هزینه و بهینه‌ساز 📉

ما از تابع هزینه CrossEntropy و بهینه‌ساز Adam استفاده می‌کنیم.

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)

5. آموزش مدل AI 📊

شبکه عصبی رو برای چندین ایپاک (epoch) آموزش می‌دهیم.

for epoch in range(5):  # تعداد ایپاک‌ها

running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data

optimizer.zero_grad()

outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()

running_loss += loss.item()
if i % 100 == 99:
print(f'[Epoch {epoch + 1}, Batch {i + 1}] loss: {running_loss / 100:.3f}')
running_loss = 0.0

print('آموزش تمام شد')

6. ذخیره مدل آموزش‌دیده شده 💾

مدل آموزش‌دیده شده رو ذخیره می‌کنیم تا در برنامه کاربردی از آن استفاده کنیم.

torch.save(net.state_dict(), 'model.pth')

7. بارگذاری مدل و استفاده از آن در برنامه کاربردی 📱

حالا یک برنامه پایتون جدید ایجاد می‌کنیم که شامل یک رابط کاربری ساده برای استفاده از مدل AI است. این برنامه با استفاده از کتابخانه tkinter یک رابط کاربری گرافیکی (GUI) ایجاد می‌کند.

ساخت رابط کاربری با tkinter👇



🆔 @Python4all_pro
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk, ImageOps
import torch
import torchvision.transforms as transforms
import numpy as np

# تعریف مدل و بارگذاری وزن‌های آموزش‌دیده شده
class ComplexNN(nn.Module):
init__init__(self):
super(ComplexNNinit__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(64 * 7 * 7, 128)
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x

net = ComplexNN()
net.load_state_dict(torch.load('model.pth'))
net.eval()

# تعریف تبدیل‌ها
transform = transforms.Compose([
transforms.Grayscale(num_output_channels=1),
transforms.Resize((28, 28)),
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])

# ساخت برنامه tkinter
class AIApp:
def init(self, root):
self.root = root
self.root.title("AI Number Recognizer")

self.label = tk.Label(root, text="Load an image to recognize the number")
self.label.pack()

self.button = tk.Button(root, text="Load Image", command=self.load_image)
self.button.pack()

self.canvas = tk.Canvas(root, width=200, height=200)
self.canvas.pack()

self.result_label = tk.Label(root, text="")
self.result_label.pack()

def load_image(self):
file_path = filedialog.askopenfilename()
if file_path:
image = Image.open(file_path)
self.show_image(image)
number = self.predict_number(image)
self.result_label.config(text=f"Predicted Number: {number}")

def show_image(self, image):
image = ImageOps.fit(image, (200, 200), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)
self.canvas.create_image(0, 0, anchor=tk.NW, image=photo)
self.canvas.image = photo

def predict_number(self, image):
image = transform(image).unsqueeze(0)
output = net(image)
_, predicted = torch.max(output.data, 1)
return predicted.item()

root = tk.Tk()
app = AIApp(root)
root.mainloop()

8. توضیحات تکمیلی 📚

این برنامه یک شبکه عصبی پیچیده برای تشخیص اعداد دست‌نویس ساخته شده با PyTorch را در یک رابط کاربری ساده با استفاده از tkinter تلفیق می‌کند. کاربران می‌توانند یک تصویر دست‌نویس از عددی را بارگذاری کرده و برنامه به طور خودکار عدد موجود در تصویر را تشخیص می‌دهد.

مزایا و کاربردهای استفاده از این سیستم AI

1. بهبود دقت: استفاده از شبکه عصبی پیچیده دقت بالایی در تشخیص اعداد دست‌نویس دارد.
2. انعطاف‌پذیری: می‌توان مدل را برای تشخیص اشیاء و الگوهای دیگر آموزش داد.
3. سهولت استفاده: رابط کاربری ساده به کاربران امکان می‌دهد به راحتی از مدل استفاده کنند


#یادگیری_ماشین #شبکه_عصبی #هوش_مصنوعی #پایتون #PyTorch #AI #Code

🆔 @Python4all_pro
دانشگاه شریف سال گذشته دوره‌ی «برنامه‌نویسی پایتون و خلاقیت الگوریتمی» را برای هزاران دانش‌آموز متوسطه‌ی سراسر کشور برگزار کرد.
تمام محتوای این دوره شامل ویدئوی کلاس‌ها، تمرین‌های نظری و عملی «به صورت رایگان» به همه‌ی دانش‌آموزان ایران تقدیم می‌شود:

http://www.learn-python.ir

#پایتون
🆔 @Python4all_pro
🖥 Model smith

This is a useful Python library that allows you to get structured answers in the form of Pydantic models and ready-made python types from Anthropic, Google Vertex AI and OpenAI.


Github




#library
#python

🆔 @Python4all_pro
This media is not supported in your browser
VIEW IN TELEGRAM
دوره‌ی «پایتون هوش‌مصنوعی برای مبتدیان» از Andrew Ng استاد دانشگاه استنفورد را به همه‌ی علاقمندان پیشنهاد می‌کنم

توضیحات دوره از زبان Andrew Ng و لینک دانلود در پست بعدی


🆔 @Python4all_pro
I'm teaching a new course! AI Python for Beginners is a series of four short courses that teach anyone to code, regardless of current technical skill. We are offering these courses free for a limited time.

Generative AI is transforming coding. This course teaches coding in a way that’s aligned with where the field is going, rather than where it has been:

(1) AI as a Coding Companion. Experienced coders are using AI to help write snippets of code, debug code, and the like. We embrace this approach and describe best-practices for coding with a chatbot. Throughout the course, you'll have access to an AI chatbot that will be your own coding companion that can assist you every step of the way as you code.

(2) Learning by Building AI Applications. You'll write code that interacts with large language models to quickly create fun applications to customize poems, write recipes, and manage a to-do list. This hands-on approach helps you see how writing code that calls on powerful AI models will make you more effective in your work and personal projects.

With this approach, beginning programmers can learn to do useful things with code far faster than they could have even a year ago.

Knowing a little bit of coding is increasingly helping people in job roles other than software engineers. For example, I've seen a marketing professional write code to download web pages and use generative AI to derive insights; a reporter write code to flag important stories; and an investor automate the initial drafts of contracts.

With this course you’ll be equipped to automate repetitive tasks, analyze data more efficiently, and leverage AI to enhance your productivity.

If you are already an experienced developer, please help me spread the word and encourage your non-developer friends to learn a little bit of coding.

I hope you'll check out the first two short courses here!

https://www.deeplearning.ai/short-courses/ai-python-for-beginners/



🆔 @Python4all_pro
📚 آموزش الگوریتمی برای حل مسائل پیچیده ریاضی در پایتون 📚

سلام دوستان! امروز می‌خوایم یاد بگیریم چطور یک الگوریتم برای حل مسائل پیچیده ریاضی رو در پایتون پیاده‌سازی کنیم. این آموزش برای کسانی که می‌خوان اصول پایه حل مسائل ریاضی با استفاده از الگوریتم‌ها رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️
ابتدا نیاز داریم که کتابخانه‌های ضروری پایتون رو وارد کنیم. برای این کار از کتابخانه‌ی math و numpy استفاده می‌کنیم.

نصب numpy
برای نصب numpy از دستور زیر استفاده کنید:
pip install numpy

2. ایجاد توابع مورد نیاز 📋
برای حل مسائل پیچیده ریاضی، نیاز به برخی توابع پایه‌ای داریم. در اینجا الگوریتمی برای حل معادلات خطی با استفاده از روش گاوس-ژردن (Gaussian Elimination) رو پیاده‌سازی می‌کنیم.

حل معادلات خطی با استفاده از روش گاوس-ژردن
import numpy as np

def gaussian_elimination(A, b):
n = len(b)
M = A

for i in range(n):
M[i] = M[i] / M[i, i]
b[i] = b[i] / M[i, i]
for j in range(i + 1, n):
ratio = M[j, i]
M[j] = M[j] - ratio * M[i]
b[j] = b[j] - ratio * b[i]

x = np.zeros(n)
for i in range(n - 1, -1, -1):
x[i] = b[i] - np.dot(M[i, i + 1:], x[i + 1:])
return x

3. تست الگوریتم 📈
حالا که الگوریتم رو پیاده‌سازی کردیم، می‌تونیم اون رو تست کنیم.

تعریف ماتریس A و بردار b
A = np.array([[2, 1, -1],
[-3, -1, 2],
[-2, 1, 2]], dtype=float)

b = np.array([8, -11, -3], dtype=float)

solution = gaussian_elimination(A, b)
print("راه‌حل معادلات:")
print(solution)

4. مزایا و کاربردهای استفاده از الگوریتم گاوس-ژردن

مزایا:
1. دقت بالا: روش گاوس-ژردن دقت بالایی در حل معادلات خطی دارد.
2. سرعت: این الگوریتم نسبت به روش‌های دیگر برای حل سیستم‌های خطی سریع‌تر عمل می‌کند.
3. سادگی پیاده‌سازی: الگوریتم گاوس-ژردن ساده و قابل فهم است و پیاده‌سازی آن پیچیدگی زیادی ندارد.

کاربردها:
1. حل مسائل فیزیک و مهندسی: این الگوریتم در حل مسائل مختلف فیزیک و مهندسی که به حل سیستم‌های خطی نیاز دارند، استفاده می‌شود.
2. بهینه‌سازی: در بسیاری از مسائل بهینه‌سازی، حل معادلات خطی ضروری است و این الگوریتم کاربرد دارد.
3. مدل‌سازی مالی: در تحلیل‌های مالی و اقتصادی برای مدل‌سازی و پیش‌بینی از این الگوریتم استفاده می‌شود.

#Python #library

🆔 https://t.me/Python4all_pro