آموزش برنامه‌نویسی پایتون و هوش مصنوعی
140 subscribers
358 photos
190 videos
41 files
172 links
🎯 یادگیری پایتون با رویکردی متفاوت
🚀 آموزش‌های کاملاً عملی و پروژه‌محور
💻 مسیر تبدیل شدن به یک برنامه‌نویس حرفه‌ای
🌟 فرقی نداره مبتدی هستی یا پیشرفته، از هر سطحی شروع کن و پایتون رو اصولی یاد بگیر
📩 ارتباط با ادمین: @YMahmoodian
09156519984
Download Telegram
from sklearn.metrics import classification_report print(classification_report(y_test, model.predict(X_test)))
78. Cross Validation
from sklearn.model_selection import cross_val_score scores = cross_val_score(model, X, y, cv=5) print(scores)
79. Grid Search برای پیدا کردن بهترین پارامتر
from sklearn.model_selection import GridSearchCV param_grid = {'n_neighbors': [3, 5, 7]} grid = GridSearchCV(KNeighborsClassifier(), param_grid, cv=5) grid.fit(X, y)
80. ذخیره مدل آموزش‌دیده
import joblib joblib.dump(model, "model.pkl")
بخش ۵: یادگیری عمیق با Keras / TensorFlow — سوال 81–100
81. نصب TensorFlow
pip install tensorflow
82. وارد کردن Keras
from tensorflow import keras from tensorflow.keras import layers
83. ساخت مدل Sequential
model = keras.Sequential([ layers.Dense(64, activation="relu"), layers.Dense(1) ])
84. کامپایل مدل
model.compile(optimizer="adam", loss="mse")
85. تولید داده نمونه
import numpy as np X = np.random.rand(100, 3) y = np.random.rand(100, 1)
86. آموزش مدل
model.fit(X, y, epochs=10)
87. پیش‌بینی با مدل
print(model.predict(X[:5]))
88. ذخیره مدل
model.save("my_model.h5")
89. بارگذاری مدل ذخیره‌شده
loaded_model = keras.models.load_model("my_model.h5")
90. افزودن Dropout برای جلوگیری از overfitting
model = keras.Sequential([ layers.Dense(64, activation="relu"), layers.Dropout(0.5), layers.Dense(1) ])
91. استفاده از تابع فعال‌سازی sigmoid
layers.Dense(1, activation="sigmoid")
92. مدل طبقه‌بندی دودویی
model.compile(optimizer="adam", loss="binary_crossentropy", metrics=["accuracy"])
93. مدل طبقه‌بندی چندکلاسه
model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
94. استفاده از EarlyStopping
callback = keras.callbacks.EarlyStopping(monitor="loss", patience=3) model.fit(X, y, epochs=50, callbacks=[callback])
95. ایجاد شبکه کانولوشنی (CNN)
model = keras.Sequential([ layers.Conv2D(32, (3, 3), activation="relu", input_shape=(28, 28, 1)), layers.MaxPooling2D((2, 2)), layers.Flatten(), layers.Dense(64, activation="relu"), layers.Dense(10, activation="softmax") ])
96. آموزش مدل CNN با داده MNIST
from tensorflow.keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() X_train = X_train.reshape(-1, 28, 28, 1) / 255.0 X_test = X_test.reshape(-1, 28, 28, 1) / 255.0
97. One-hot encoding برچسب‌ها
y_train = keras.utils.to_categorical(y_train, 10) y_test = keras.utils.to_categorical(y_test, 10)
98. آموزش مدل
model.fit(X_train, y_train, epochs=5, validation_data=(X_test, y_test))
99. ارزیابی مدل
model.evaluate(X_test, y_test)
100. پیش‌بینی و نمایش خروجی
import numpy as np pred = model.predict(X_test[:1]) print(np.argmax(pred))
فصل بعد: پردازش تصویر با OpenCV


---

بخش ۱ – شروع کار با OpenCV (سوال 1 تا 20)

1. نصب OpenCV در پایتون

pip install opencv-python

2. وارد کردن کتابخانه OpenCV

import cv2

3. خواندن یک تصویر از فایل

img = cv2.imread("image.jpg")

4. نمایش تصویر در پنجره

cv2.imshow("My Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

5. تغییر اندازه تصویر

resized = cv2.resize(img, (300, 200))

6. ذخیره تصویر در فایل جدید

cv2.imwrite("new_image.jpg", resized)

7. خواندن تصویر به صورت سیاه و سفید

gray = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE)

8. گرفتن اطلاعات ابعاد تصویر

height, width, channels = img.shape

9. بریدن (Crop) تصویر

crop = img[50:200, 100:300]

10. چرخاندن تصویر

rotated = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)

11. وارونه کردن تصویر افقی

flipped = cv2.flip(img, 1)

12. وارونه کردن تصویر عمودی

flipped = cv2.flip(img, 0)

13. تبدیل تصویر رنگی به خاکستری

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

14. اعمال فیلتر Gaussian Blur

blur = cv2.GaussianBlur(img, (5, 5), 0)

15. اعمال فیلتر Median Blur

median = cv2.medianBlur(img, 5)

16. تشخیص لبه‌ها با Canny

edges = cv2.Canny(img, 100, 200)

17. تغییر فضای رنگ به HSV

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

18. رسم یک خط روی تصویر

cv2.line(img, (0,0), (100,100), (255,0,0), 3)

19. رسم یک دایره روی تصویر

cv2.circle(img, (150,150), 50, (0,255,0), -1)

20. نوشتن متن روی تصویر

cv2.putText(img, "Hello", (50,50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255), 2)
بخش ۲ – پردازش پیشرفته تصویر (21–50)

21. تبدیل تصویر به بلور با فیلتر Gaussian با کرنل بزرگتر

blur = cv2.GaussianBlur(img, (15, 15), 0)

22. تبدیل تصویر به بلور با فیلتر Bilateral

bilateral = cv2.bilateralFilter(img, 9, 75, 75)

23. تبدیل تصویر به تصویر باینری با Thresholding

ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

24. استفاده از Adaptive Thresholding

adaptive = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
cv2.THRESH_BINARY, 11, 2)

25. یافتن کانتورهای تصویر

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

26. رسم کانتورها روی تصویر

cv2.drawContours(img, contours, -1, (0,255,0), 3)

27. اعمال تبدیل مورفولوژیک (Erosion)

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))
eroded = cv2.erode(thresh, kernel, iterations=1)

28. اعمال تبدیل مورفولوژیک (Dilation)

dilated = cv2.dilate(thresh, kernel, iterations=1)

29. باز و بسته کردن (Opening & Closing)

opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel)
closing = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)

30. اعمال تبدیل Sobel برای تشخیص لبه‌ها

sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=5)

31. تشخیص لبه با Laplacian

laplacian = cv2.Laplacian(gray, cv2.CV_64F)

32. ترکیب دو تصویر با Weighted Sum

added = cv2.addWeighted(img1, 0.7, img2, 0.3, 0)

33. ماسک کردن تصویر با Threshold

mask = cv2.inRange(hsv, (0, 50, 50), (10, 255, 255))
res = cv2.bitwise_and(img, img, mask=mask)

34. تبدیل تصویر به تصویر Negative

negative = 255 - img

35. پیدا کردن مرکز کانتور

M = cv2.moments(contours[0])
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])

36. رسم مستطیل دور کانتور

x, y, w, h = cv2.boundingRect(contours[0])
cv2.rectangle(img, (x,y), (x+w, y+h), (0,0,255), 2)

37. رسم دایره دور کانتور حداقلی

(x, y), radius = cv2.minEnclosingCircle(contours[0])
cv2.circle(img, (int(x), int(y)), int(radius), (255,0,0), 2)

38. approxPolyDP برای ساده‌سازی کانتور

epsilon = 0.01 * cv2.arcLength(contours[0], True)
approx = cv2.approxPolyDP(contours[0], epsilon, True)

39. شمارش تعداد اشکال در تصویر

print(len(contours))

40. تبدیل تصویر به تصویر 1 کاناله سیاه و سفید (Binary)

ret, binary = cv2.threshold(gray, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

41. یافتن خطوط با Hough Transform

lines = cv2.HoughLines(edges, 1, np.pi/180, 200)

42. یافتن دایره‌ها با Hough Circle

circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)

43. Warp تصویر (Perspective Transform)

pts1 = np.float32([[0,0],[w,0],[0,h],[w,h]])
pts2 = np.float32([[0,0],[w,0],[50,h],[w-50,h]])
matrix = cv2.getPerspectiveTransform(pts1, pts2)
dst = cv2.warpPerspective(img, matrix, (w,h))

44. Affine Transform برای چرخش و انتقال تصویر

pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])
matrix = cv2.getAffineTransform(pts1, pts2)
dst = cv2.warpAffine(img, matrix, (cols, rows))

45. Histogram تصویر

hist = cv2.calcHist([gray], [0], None, [256], [0,256])

46. برابر سازی Histogram (Histogram Equalization)

equalized = cv2.equalizeHist(gray)

47. تبدیل تصویر به تصویر HSV و جدا کردن کانال‌ها

h,s,v = cv2.split(hsv)

48. ادغام کانال‌ها

merged = cv2.merge([h,s,v])

49. رسم مستطیل و متن روی تصویر با حلقه

for i, cnt in enumerate(contours):
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)
cv2.putText(img, str(i), (x,y-5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,255),1)

50. چسباندن (Stack) دو تصویر کنار هم

stacked = np.hstack((img1, img2))
cv2.imshow("Stacked", stacked)


---
باشه، ادامه می‌دهیم به سوالات حرفه‌ای و پروژه‌ای OpenCV (51–100)
بخش ۳ – پروژه‌ها و کاربردهای پیشرفته (سوال 51–100)
51. ردیابی حرکت با Background Subtraction
fgbg = cv2.createBackgroundSubtractorMOG2() fgmask = fgbg.apply(frame)
52. محاسبه Optical Flow برای ردیابی حرکت
flow = cv2.calcOpticalFlowFarneback(prev_gray, gray, None, 0.5, 3, 15, 3, 5, 1.2, 0)
53. تشخیص چهره با Haar Cascade
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, 1.3, 5)
54. رسم مستطیل دور چهره‌ها
for (x,y,w,h) in faces: cv2.rectangle(img, (x,y), (x+w, y+h), (255,0,0), 2)
55. تشخیص چشم در چهره
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') for (x,y,w,h) in faces: roi_gray = gray[y:y+h, x:x+w] eyes = eye_cascade.detectMultiScale(roi_gray)
56. ردیابی شی با Color Detection
mask = cv2.inRange(hsv, lower_color, upper_color) res = cv2.bitwise_and(frame, frame, mask=mask)
57. محاسبه Moments و مرکز شیء رنگی
M = cv2.moments(mask) cx = int(M['m10']/M['m00']) cy = int(M['m01']/M['m00'])
58. تشخیص حرکات با Contours روی ماسک
contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) cv2.drawContours(frame, contours, -1, (0,255,0), 2)
59. رسم مسیر حرکت شیء روی تصویر
pts = deque(maxlen=64) pts.appendleft((cx, cy)) for i in range(1, len(pts)): cv2.line(frame, pts[i-1], pts[i], (0,0,255), 2)
60. محاسبه زاویه بین دو خط
angle = math.degrees(math.atan2(y2-y1, x2-x1))
61. تبدیل تصویر به Sketch (طرح سیاه و سفید)
inv = 255 - gray blur = cv2.GaussianBlur(inv, (21,21), 0) sketch = cv2.divide(gray, 255 - blur, scale=256)
62. Cartoon Effect روی تصویر
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gray = cv2.medianBlur(gray, 5) edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9) color = cv2.bilateralFilter(img, 9, 300, 300) cartoon = cv2.bitwise_and(color, color, mask=edges)
63. اعمال فیلتر Canny روی تصویر رنگی
edges = cv2.Canny(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY), 100, 200)
64. تشخیص QR Code با OpenCV
detector = cv2.QRCodeDetector() data, bbox, _ = detector.detectAndDecode(img)
65. Trackbar برای تغییر Threshold در زمان اجرا
cv2.createTrackbar('Thresh','window',0,255,nothing)
66. تشخیص حرکت با Frame Differencing
diff = cv2.absdiff(frame1, frame2) gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
67. Histogram Equalization روی تصویر رنگی (YUV)
yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV) yuv[:,:,0] = cv2.equalizeHist(yuv[:,:,0]) img_eq = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR)
68. استخراج لبه‌ها و اعمال ماسک روی تصویر اصلی
edges = cv2.Canny(gray, 100, 200) masked = cv2.bitwise_and(img, img, mask=edges)
69. Template Matching برای پیدا کردن شیء در تصویر
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) top_left = max_loc
70. Perspective Transform برای اسکن سند
pts1 = np.float32([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) pts2 = np.float32([[0,0],[w,0],[0,h],[w,h]]) matrix = cv2.getPerspectiveTransform(pts1, pts2) scanned = cv2.warpPerspective(img, matrix, (w,h))
71. اعمال Gaussian Pyramid برای Downsampling تصویر
lower_reso = cv2.pyrDown(img)
72. اعمال Laplacian Pyramid برای تصویر
laplacian = cv2.pyrUp(lower_reso)
73. Blend دو تصویر با Pyramid Blending
blended = cv2.addWeighted(img1, 0.5, img2, 0.5, 0)
74. Optical Character Recognition (OCR) با pytesseract
import pytesseract text = pytesseract.image_to_string(img)
75. شمارش اشیا با Connected Components
num_labels, labels = cv2.connectedComponents(thresh)
76. تغییر رنگ شیء انتخاب شده با ماسک
img[mask==255] = [0,255,0]
77. رسم Bounding Box روی بیش از یک شیء
for cnt in contours: x,y,w,h = cv2.boundingRect(cnt) cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
78. محاسبه Area کانتور و فیلتر کوچک‌ترین‌ها
areas = [cv2.contourArea(c) for c in contours] big_contours = [c for c in contours if cv2.contourArea(c)>100]
79. استخراج ROI و ذخیره در فایل

roi = img[y:y+h, x:x+w]
cv2.imwrite('roi.jpg', roi)

80. محاسبه هیستوگرام کانال‌های رنگی

color = ('b','g','r')
for i,col in enumerate(color):
hist = cv2.calcHist([img],[i],None,[256],[0,256])

81. تشخیص اشیا با Background Subtractor KNN

fgbg = cv2.createBackgroundSubtractorKNN()
fgmask = fgbg.apply(frame)

82. اعمال Morphology بعد از Subtraction برای تمیز کردن

kernel = np.ones((5,5),np.uint8)
fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)

83. استخراج لبه‌ها و یافتن گوشه‌ها با Harris

dst = cv2.cornerHarris(gray,2,3,0.04)
dst = cv2.dilate(dst,None)
img[dst>0.01*dst.max()] = [0,0,255]

84. Detect SIFT keypoints و Descriptors

sift = cv2.SIFT_create()
kp, des = sift.detectAndCompute(gray,None)
img=cv2.drawKeypoints(img,kp,None)

85. Detect ORB keypoints و Descriptors

orb = cv2.ORB_create()
kp, des = orb.detectAndCompute(gray,None)
img=cv2.drawKeypoints(img,kp,None)

86. Feature Matching با BFMatcher

bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
matches = bf.match(des1, des2)
matches = sorted(matches, key = lambda x:x.distance)

87. Stitching دو تصویر کنار هم

stitcher = cv2.Stitcher_create()
status, pano = stitcher.stitch([img1,img2])

88. Face Recognition با LBPHFaceRecognizer

recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(faces, np.array(labels))

89. CamShift Tracking

ret, track_window = cv2.CamShift(prob_mask, track_window, term_crit)

90. MeanShift Tracking

ret, track_window = cv2.meanShift(prob_mask, track_window, term_crit)
ادامه‌ی سوالات حرفه‌ای و پروژه‌ای OpenCV (91–100):


---

91. Detect Contours با cv2.RETR_EXTERNAL

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,255,0), 2)

92. Approximate Contours با cv2.approxPolyDP

epsilon = 0.02 * cv2.arcLength(cnt, True)
approx = cv2.approxPolyDP(cnt, epsilon, True)
cv2.drawContours(img, [approx], 0, (0,0,255), 2)

93. Fit Ellipse روی کانتورهای بیضوی شکل

if len(cnt) >= 5:
ellipse = cv2.fitEllipse(cnt)
cv2.ellipse(img, ellipse, (255,0,0), 2)

94. Fit Line روی نقاط کانتور

[vx, vy, x, y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01)

95. محاسبه Bounding Circle کانتور

(x, y), radius = cv2.minEnclosingCircle(cnt)
cv2.circle(img, (int(x),int(y)), int(radius), (0,255,0),2)

96. Threshold پویا با cv2.adaptiveThreshold

thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
cv2.THRESH_BINARY, 11, 2)

97. استفاده از cv2.add و cv2.subtract برای ترکیب تصاویر

added = cv2.add(img1, img2)
subtracted = cv2.subtract(img1, img2)

98. استفاده از cv2.bitwise_and, or, xor روی تصاویر

bitwise_and = cv2.bitwise_and(img1, img2)
bitwise_or = cv2.bitwise_or(img1, img2)
bitwise_xor = cv2.bitwise_xor(img1, img2)

99. ساخت ماسک از چندضلعی

mask = np.zeros_like(gray)
pts = np.array([[50,50],[200,50],[200,200],[50,200]], np.int32)
cv2.fillPoly(mask, [pts], 255)
masked_img = cv2.bitwise_and(img, img, mask=mask)

100. ذخیره و بارگذاری ویدیو با VideoWriter و VideoCapture

cap = cv2.VideoCapture('input.mp4')
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640,480))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
out.write(frame)
cap.release()
out.release()
cv2.destroyAllWindows()
فصل هوش مصنوعی و یادگیری عمیق (AI / Deep Learning) است.


فصل AI / Deep Learning – بخش ۱: مقدماتی (سوال 1–20)

1. نصب TensorFlow

pip install tensorflow

2. چک کردن نسخه TensorFlow

import tensorflow as tf
print(tf.version)

3. ساخت یک Tensorr ساده

import tensorflow as tf
tensor = tf.constant([[1,2],[3,4]])
print(tensor)

4. جمع دو Tensorr

a = tf.constant([1,2])
b = tf.constant([3,4])
print(tf.add(a,b))

5. تعریف یک متغیر TensorFlow

v = tf.Variable([1.0,2.0])
v.assign([3.0,4.0])

6. تبدیل NumPy به TensorFlow

import numpy as np
arr = np.array([1,2,3])
tensor = tf.convert_to_tensor(arr)

7. ساخت یک مدل Sequential ساده

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential([Dense(10, input_shape=(5,), activation='relu')])

8. اضافه کردن لایه Dense به مدل

model.add(Dense(1, activation='sigmoid'))

9. کامپایل مدل با optimizer و loss

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

10. آماده کردن داده‌های آموزشی

import numpy as np
X = np.random.rand(100,5)
y = np.random.randint(0,2,100)

11. آموزش مدل با fit

model.fit(X, y, epochs=10, batch_size=5)

12. ارزیابی مدل با evaluate

loss, acc = model.evaluate(X, y)
print(loss, acc)

13. پیش‌بینی با مدل

preds = model.predict(X[:5])
print(preds)

14. ذخیره مدل کامل

model.save('my_model.h5')

15. بارگذاری مدل

from tensorflow.keras.models import load_model
model = load_model('my_model.h5')

16. ساخت Callback برای توقف زودهنگام

from tensorflow.keras.callbacks import EarlyStopping
es = EarlyStopping(monitor='loss', patience=3)

17. تقسیم داده به train و test با sklearn

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

18. استانداردسازی داده‌ها

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

19. تعریف یک شبکه با چند لایه Dense

model = Sequential([
Dense(64, activation='relu', input_shape=(5,)),
Dense(32, activation='relu'),
Dense(1, activation='sigmoid')
])

20. استفاده از Dropout برای جلوگیری از Overfitting

from tensorflow.keras.layers import Dropout
model = Sequential([
Dense(64, activation='relu', input_shape=(5,)),
Dropout(0.5),
Dense(1, activation='sigmoid')
])


---
فصل AI / Deep Learning – بخش ۲: پیشرفته‌تر (سوال 21–40)
21. ساخت یک شبکه کانولوشنی ساده (CNN) برای تصاویر
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), MaxPooling2D((2,2)), Flatten(), Dense(10, activation='softmax') ])
22. کامپایل مدل CNN با categorical_crossentropy
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
23. ساخت یک شبکه بازگشتی ساده (RNN) با LSTM
from tensorflow.keras.layers import LSTM model = Sequential([ LSTM(50, input_shape=(10,1)), Dense(1, activation='sigmoid') ])
24. استفاده از Embedding برای متن
from tensorflow.keras.layers import Embedding model = Sequential([ Embedding(input_dim=1000, output_dim=64, input_length=10), LSTM(32), Dense(1, activation='sigmoid') ])
25. بارگذاری دیتاست MNIST
from tensorflow.keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data()
26. نرمال‌سازی تصاویر MNIST
X_train = X_train / 255.0 X_test = X_test / 255.0
27. One-hot encoding برای برچسب‌ها
from tensorflow.keras.utils import to_categorical y_train = to_categorical(y_train, 10) y_test = to_categorical(y_test, 10)
28. Data augmentation با ImageDataGenerator
from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, height_shift_range=0.1) datagen.fit(X_train.reshape(-1,28,28,1))
29. اضافه کردن BatchNormalization به مدل
from tensorflow.keras.layers import BatchNormalization model = Sequential([ Dense(64, activation='relu', input_shape=(20,)), BatchNormalization(), Dense(1, activation='sigmoid') ])
30. استفاده از optimizer پیشرفته Adamax
from tensorflow.keras.optimizers import Adamax model.compile(optimizer=Adamax(), loss='binary_crossentropy', metrics=['accuracy'])
31. ذخیره مدل به فرمت SavedModel
model.save('saved_model')
32. بارگذاری مدل SavedModel
model = tf.keras.models.load_model('saved_model')
33. استفاده از TensorBoard برای مانیتورینگ
from tensorflow.keras.callbacks import TensorBoard tb = TensorBoard(log_dir='./logs')
34. آموزش مدل با validation_split
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
35. EarlyStopping و ReduceLROnPlateau با هم
from tensorflow.keras.callbacks import ReduceLROnPlateau rlr = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=2)
36. مدل Functional API برای چند ورودی
from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, Dense, concatenate input1 = Input(shape=(10,)) input2 = Input(shape=(5,)) x = Dense(8, activation='relu')(input1) y = Dense(4, activation='relu')(input2) combined = concatenate([x,y]) output = Dense(1, activation='sigmoid')(combined) model = Model(inputs=[input1, input2], outputs=output)
37. محاسبه confusion matrix با sklearn
from sklearn.metrics import confusion_matrix y_pred = model.predict(X_test).round() cm = confusion_matrix(y_test, y_pred) print(cm)
38. رسم نمودار Accuracy و Loss
import matplotlib.pyplot as plt history = model.fit(X_train, y_train, epochs=10, validation_split=0.2) plt.plot(history.history['accuracy']) plt.plot(history.history['val_accuracy']) plt.show()
39. استفاده از callbacks سفارشی
from tensorflow.keras.callbacks import Callback class MyCallback(Callback): def on_epoch_end(self, epoch, logs=None): print(f"Epoch {epoch} done!")
40. پیش‌بینی چند کلاس با softmax و argmax
preds = model.predict(X_test) import numpy as np labels = np.argmax(preds, axis=1)
فصل AI / Deep Learning – بخش ۳: پروژه‌ها و کاربردهای واقعی (سوال 41–60)
41. تشخیص ارقام دست‌نویس MNIST
# شبکه CNN ساده from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), MaxPooling2D((2,2)), Flatten(), Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(X_train, y_train, epochs=5)
42. تشخیص تصاویر سگ و گربه (Cat vs Dog)
from tensorflow.keras.preprocessing.image import ImageDataGenerator train_gen = ImageDataGenerator(rescale=1./255).flow_from_directory('train/', target_size=(64,64)) model.fit(train_gen, epochs=10)
43. تحلیل احساسات متن با LSTM
from tensorflow.keras.layers import Embedding, LSTM model = Sequential([ Embedding(input_dim=10000, output_dim=64, input_length=100), LSTM(64), Dense(1, activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
44. ترجمه متن با Seq2Seq
# تعریف مدل Encoder-Decoder ساده from tensorflow.keras.layers import Input, LSTM, Dense encoder_inputs = Input(shape=(None, num_encoder_tokens)) encoder = LSTM(256, return_state=True) encoder_outputs, state_h, state_c = encoder(encoder_inputs) encoder_states = [state_h, state_c] decoder_inputs = Input(shape=(None, num_decoder_tokens)) decoder_lstm = LSTM(256, return_sequences=True, return_state=True) decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state=encoder_states) decoder_dense = Dense(num_decoder_tokens, activation='softmax') decoder_outputs = decoder_dense(decoder_outputs)
45. تشخیص شی در تصویر با Object Detection (YOLO)
# استفاده از مدل از پیش آموزش دیده YOLOv5 !pip install ultralytics from ultralytics import YOLO model = YOLO('yolov5s.pt') results = model('image.jpg') results.show()
46. پیش‌بینی سری‌های زمانی با LSTM
from tensorflow.keras.layers import LSTM model = Sequential([ LSTM(50, input_shape=(10,1)), Dense(1) ]) model.compile(optimizer='adam', loss='mse')
47. تولید متن با RNN
from tensorflow.keras.layers import SimpleRNN model = Sequential([ SimpleRNN(128, input_shape=(100, vocab_size)), Dense(vocab_size, activation='softmax') ])
48. تشخیص ناهنجاری (Anomaly Detection) با Autoencoder
from tensorflow.keras.layers import Input, Dense input_dim = X_train.shape[1] input_layer = Input(shape=(input_dim,)) encoded = Dense(32, activation='relu')(input_layer) decoded = Dense(input_dim, activation='sigmoid')(encoded) autoencoder = Model(inputs=input_layer, outputs=decoded) autoencoder.compile(optimizer='adam', loss='mse')
49. کاهش ابعاد با PCA قبل از شبکه عصبی
from sklearn.decomposition import PCA pca = PCA(n_components=50) X_reduced = pca.fit_transform(X_train)
50. استفاده از Dropout برای جلوگیری از overfitting
from tensorflow.keras.layers import Dropout model = Sequential([ Dense(128, activation='relu', input_shape=(100,)), Dropout(0.5), Dense(10, activation='softmax') ])
51. استفاده از BatchNormalization در CNN
from tensorflow.keras.layers import BatchNormalization model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), BatchNormalization(), MaxPooling2D((2,2)), Flatten(), Dense(10, activation='softmax') ])
52. EarlyStopping برای جلوگیری از overfitting
from tensorflow.keras.callbacks import EarlyStopping es = EarlyStopping(monitor='val_loss', patience=3) model.fit(X_train, y_train, epochs=20, validation_split=0.2, callbacks=[es])
53. استفاده از ReduceLROnPlateau
from tensorflow.keras.callbacks import ReduceLROnPlateau rlr = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=2)
54. ذخیره بهترین مدل با ModelCheckpoint
from tensorflow.keras.callbacks import ModelCheckpoint checkpoint = ModelCheckpoint('best_model.h5', save_best_only=True)
55. ساخت شبکه GAN ساده
# Generator و Discriminator ساده from tensorflow.keras.layers import Dense, LeakyReLU from tensorflow.keras.models import Sequential generator = Sequential([Dense(128, activation='relu', input_dim=100), Dense(784, activation='sigmoid')]) discriminator = Sequential([Dense(128, activation=LeakyReLU(0.2), input_dim=784), Dense(1, activation='sigmoid')])
56. استفاده از pre-trained VGG16 برای feature extraction
from tensorflow.keras.applications import VGG16 base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224,224,3))
57. fine-tuning مدل از پیش آموزش دیده
for layer in base_model.layers[:-4]: layer.trainable = False
58. استفاده از tf.data برای pipeline داده‌ها
import tensorflow as tf dataset = tf.data.Dataset.from_tensor_slices((X_train, y_train)).batch(32).shuffle(1000)
59. پیش‌بینی تصاویر جدید با مدل CNN
import numpy as np img = np.expand_dims(X_test[0], axis=0) pred = model.predict(img)
60. اندازه‌گیری دقت مدل با sklearn
from sklearn.metrics import accuracy_score y_pred = model.predict(X_test).argmax(axis=1) y_true = y_test.argmax(axis=1) print(accuracy_score(y_true, y_pred))
فصل AI / Deep Learning – بخش ۴: پروژه‌های واقعی پیشرفته (سوال 61–80)

61. تشخیص چهره با OpenCV و DNN

import cv2
net = cv2.dnn.readNetFromCaffe('deploy.prototxt', 'weights.caffemodel')
image = cv2.imread('face.jpg')
(h, w) = image.shape[:2]
blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0, (300, 300), (104.0, 177.0, 123.0))
net.setInput(blob)
detections = net.forward()

62. تشخیص اشیا با Mask R-CNN

# استفاده از مدل pre-trained Mask R-CNN
from mrcnn import model as modellib, utils
model = modellib.MaskRCNN(mode='inference', model_dir='./', config=config)
results = model.detect([image], verbose=1)

63. ایجاد Chatbot ساده با seq2seq

# استفاده از LSTM encoder-decoder
from tensorflow.keras.models import Model
from tensorflow.keras.layers import LSTM, Input, Dense

64. استفاده از Word2Vec برای embedding متن

from gensim.models import Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)
vector = model.wv['python']

65. استفاده از BERT برای NLP

from transformers import BertTokenizer, TFBertModel
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = TFBertModel.from_pretrained('bert-base-uncased')
inputs = tokenizer("Hello AI!", return_tensors="tf")
outputs = model(inputs)

66. استفاده از Attention در شبکه عصبی

from tensorflow.keras.layers import Attention
attention = Attention()([query, value])

67. تشخیص خطا در متن با Transformer

# مدل تصحیح گرامر با Transformer
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("t5-small")
model = AutoModelForSeq2SeqLM.from_pretrained("t5-small")

68. سیستم توصیه‌گر با Collaborative Filtering

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
similarity = cosine_similarity(user_item_matrix)

69. افزایش داده‌ها (Data Augmentation) در تصویر

from tensorflow.keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(rotation_range=20, horizontal_flip=True)

70. استفاده از Regularization L2 برای جلوگیری از overfitting

from tensorflow.keras.regularizers import l2
Dense(64, activation='relu', kernel_regularizer=l2(0.01))

71. آموزش GAN با تصاویر دست‌ساز

# آموزش Generator و Discriminator

72. ایجاد Autoencoder برای کاهش نویز تصویر

# مدل Encoder-Decoder ساده برای denoising

73. استفاده از TensorBoard برای مانیتورینگ

from tensorflow.keras.callbacks import TensorBoard
tb = TensorBoard(log_dir='./logs')
model.fit(X_train, y_train, epochs=5, callbacks=[tb])

74. پیش‌بینی زمان واقعی با مدل CNN

# استفاده از OpenCV برای دریافت فریم و مدل CNN برای پیش‌بینی

75. تشخیص احساسات با شبکه عصبی CNN-LSTM

# ترکیب ویژگی‌های تصویر و متن

76. استفاده از Learning Rate Scheduler

from tensorflow.keras.callbacks import LearningRateScheduler
def scheduler(epoch, lr): return lr * 0.9
lr_scheduler = LearningRateScheduler(scheduler)

77. آموزش مدل چند وظیفه‌ای (Multi-task Learning)

# مدل با خروجی‌های متعدد برای چند وظیفه

78. Distillation مدل برای سبک‌سازی شبکه عصبی

# آموزش مدل کوچک با تقلید از مدل بزرگ

79. استفاده از Mixed Precision Training برای سرعت بیشتر

from tensorflow.keras.mixed_precision import experimental as mixed_precision
policy = mixed_precision.Policy('mixed_float16')
mixed_precision.set_policy(policy)

80. ذخیره و بارگذاری مدل TensorFlow با SavedModel

model.save('saved_model/my_model')
loaded_model = tf.keras.models.load_model('saved_model/my_model')


---
فصل AI / Deep Learning – بخش ۵: چالش‌ها و تکنیک‌های حرفه‌ای (سوال 81–100)
81. Fine-tuning مدل BERT برای classification
from transformers import TFBertForSequenceClassification model = TFBertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)
82. استفاده از Early Stopping برای جلوگیری از overfitting
from tensorflow.keras.callbacks import EarlyStopping early_stop = EarlyStopping(monitor='val_loss', patience=3)
83. Cross-validation برای مدل‌های Deep Learning
from sklearn.model_selection import KFold kf = KFold(n_splits=5)
84. ایجاد Embedding Layer در شبکه عصبی
from tensorflow.keras.layers import Embedding embedding = Embedding(input_dim=1000, output_dim=64)
85. استفاده از Dropout برای کاهش overfitting
from tensorflow.keras.layers import Dropout Dropout(0.5)
86. آموزش مدل CNN برای CIFAR-10
from tensorflow.keras.datasets import cifar10 (X_train, y_train), (X_test, y_test) = cifar10.load_data()
87. پیش‌بینی با مدل آموزش دیده PyTorch
import torch model = torch.load('model.pth') model.eval() output = model(torch.tensor(input_data))
88. استفاده از DataLoader در PyTorch
from torch.utils.data import DataLoader train_loader = DataLoader(dataset, batch_size=32, shuffle=True)
89. تعریف Custom Dataset در PyTorch
from torch.utils.data import Dataset class MyDataset(Dataset): def __init__(self, data): self.data = data def __len__(self): return len(self.data) def __getitem__(self, idx): return self.data[idx]
90. استفاده از optimizer Adam در PyTorch
import torch.optim as optim optimizer = optim.Adam(model.parameters(), lr=0.001)
91. محاسبه loss با CrossEntropy
import torch.nn as nn criterion = nn.CrossEntropyLoss()
92. ذخیره و بارگذاری مدل PyTorch
torch.save(model.state_dict(), 'model.pth') model.load_state_dict(torch.load('model.pth'))
93. افزایش داده‌ها با Albumentations
import albumentations as A transform = A.Compose([A.HorizontalFlip(), A.RandomBrightnessContrast()])
94. آموزش شبکه RNN برای پیش‌بینی توالی‌ها
from tensorflow.keras.layers import SimpleRNN SimpleRNN(50, input_shape=(timesteps, features))
95. استفاده از GRU به جای LSTM
from tensorflow.keras.layers import GRU GRU(50, input_shape=(timesteps, features))
96. محاسبه accuracy و F1-score
from sklearn.metrics import accuracy_score, f1_score accuracy_score(y_true, y_pred) f1_score(y_true, y_pred, average='weighted')
97. استفاده از TensorFlow Hub برای مدل‌های پیش‌آموزش دیده
import tensorflow_hub as hub model = hub.KerasLayer("https://tfhub.dev/google/nnlm-en-dim50/2")
98. ترکیب CNN و RNN برای داده‌های تصویری و زمانی
# CNN برای ویژگی تصویر + RNN برای توالی
99. آموزش GAN برای تولید تصویر واقعی
# Generator و Discriminator با Keras
100. ارزیابی مدل با Confusion Matrix و ROC Curve
from sklearn.metrics import confusion_matrix, roc_curve confusion_matrix(y_true, y_pred) fpr, tpr, thresholds = roc_curve(y_true, y_score)
فصل پروژه‌ها و مسائل ترکیبی عملی – ۱۰۰ سوال

بخش ۱: پروژه‌های مبتدی (سوال 1–30)

1. ایجاد یک ماشین حساب ساده

دریافت دو عدد و عملیات جمع، تفریق، ضرب، تقسیم از کاربر و چاپ نتیجه.


2. تشخیص عدد زوج یا فرد

از کاربر یک عدد بگیرد و چاپ کند زوج است یا فرد.


3. شمارنده کلمات در متن

گرفتن یک رشته از کاربر و شمارش تعداد کلمات آن.


4. وارون متن ورودی

ورودی کاربر را دریافت کرده و معکوس آن را چاپ کند.


5. حداقل و حداکثر لیست

از کاربر n عدد بگیرد و کوچک‌ترین و بزرگ‌ترین عدد را چاپ کند.


6. بررسی آناگرام دو کلمه

دو رشته ورودی و بررسی اینکه حروفشان با هم برابر است یا نه.


7. جمع اعداد فرد از لیست

از لیست [1,2,3,4,5] فقط اعداد فرد را جمع بزن.


8. فیلتر اعداد منفی از لیست

یک لیست از کاربر گرفته و فقط اعداد مثبت را چاپ کند.


9. شمارش حروف در رشته

ورودی کاربر و چاپ تعداد هر حرف در رشته.


10. فهرست مربع اعداد

گرفتن n از کاربر و چاپ [1², 2², …, n²].


11. جدول ضرب

چاپ جدول ضرب عدد ورودی تا 10.


12. فاکتوریل عدد

محاسبه فاکتوریل عدد ورودی.


13. بررسی عدد اول

بررسی اینکه عدد ورودی اول است یا نه.


14. چاپ اعداد اول تا n

چاپ تمام اعداد اول تا عدد n.


15. جمع اعداد زوج تا n

محاسبه جمع اعداد زوج تا n.


16. شمارش کلمات خاص در متن

گرفتن متن و یک کلمه، و شمارش تعداد تکرار آن کلمه.


17. وارون لیست

گرفتن لیست و چاپ وارون آن.


18. حذف اعداد تکراری از لیست

لیست ورودی و چاپ بدون تکرار.


19. میانگین لیست

محاسبه میانگین اعداد لیست.


20. بیشترین و کمترین طول کلمه

پیدا کردن طولانی‌ترین و کوتاه‌ترین کلمه در یک رشته.


21. ایجاد دیکشنری از دو لیست

لیست کلیدها و مقادیر و تبدیل به دیکشنری.


22. معکوس دیکشنری

کلید و مقدار را جابه‌جا کنید.


23. بررسی موجودیت کلید در دیکشنری

آیا کلید مشخص وجود دارد؟


24. جمع مقادیر دیکشنری

جمع تمام اعداد موجود در دیکشنری.


25. مرتب‌سازی دیکشنری بر اساس مقدار

چاپ دیکشنری مرتب بر اساس مقدار.


26. خواندن و نوشتن فایل متنی ساده

ذخیره ورودی کاربر در فایل و خواندن آن.


27. ذخیره دیکشنری در JSON

ذخیره دیکشنری ساده در فایل JSON.


28. خواندن CSV و چاپ ردیف‌ها

خواندن یک فایل CSV و چاپ ردیف‌ها.


29. حذف فایل موقت

ایجاد فایل، نوشتن داده و حذف آن.


30. بررسی اندازه فایل

چاپ اندازه فایل موجود.
بخش ۲: پروژه‌های متوسط (سوال 31–60)

31. ماشین حساب پیشرفته با حلقه و منو

نمایش منو، گرفتن ورودی کاربر، امکان انجام چند عملیات پشت سر هم تا انتخاب خروج.


32. حداقل، حداکثر و میانگین از لیست ورودی

گرفتن لیست از کاربر و چاپ min، max و mean.


33. شمارش حروف و اعداد در رشته

بررسی تعداد حروف، ارقام و کاراکترهای خاص.


34. وارون کلمات یک جمله

جمله ورودی و چاپ کلمات آن به صورت معکوس.


35. بررسی پالیندروم بودن جمله

جمله ورودی، حذف فاصله و بررسی اینکه پالیندروم است یا نه.


36. مرتب‌سازی لیست بدون توابع آماده

لیست ورودی را با الگوریتم ساده مرتب کنید.


37. فیلتر لیست اعداد بزرگ‌تر از n

گرفتن لیست و یک عدد و چاپ اعداد بزرگ‌تر.


38. حذف کاراکترهای خاص از رشته

رشته ورودی و حذف تمام کاراکترهای غیرحروف و غیرعدد.


39. ترکیب دو لیست بدون تکرار

دو لیست ورودی و خروجی لیست ترکیبی بدون تکرار.


40. یافتن بیشترین تکرار یک عنصر در لیست

لیست ورودی و چاپ عنصری که بیشترین تکرار را دارد.


41. ایجاد ماتریس n×n با صفر و یک

n ورودی و ایجاد ماتریس با ۰ و ۱ به صورت نمونه.


42. جمع دو ماتریس

گرفتن دو ماتریس و چاپ جمع آن‌ها.


43. ضرب ماتریس

ضرب دو ماتریس با الگوریتم ساده.


44. رسم الگوی ستاره با حلقه‌ها

مثلث یا مربع ستاره‌ای.


45. شمارش تعداد خطوط و کلمات فایل

خواندن فایل متنی و چاپ تعداد خطوط و کلمات.


46. جایگزینی متن در فایل

تغییر یک کلمه مشخص با کلمه دیگر در فایل.


47. فایل لاگ با تاریخچه ایجاد کنید

هر ورودی کاربر به همراه تاریخ در فایل ذخیره شود.


48. خواندن CSV و محاسبه میانگین ستون

ستون مشخص و محاسبه میانگین آن.


49. پیدا کردن بزرگ‌ترین و کوچک‌ترین عدد در CSV

خواندن ستون عددی و چاپ بزرگ‌ترین و کوچک‌ترین.


50. جمع ستون‌ها در CSV و ذخیره در فایل جدید

محاسبه جمع هر ستون و ذخیره در CSV جدید.


51. ذخیره و بازیابی دیکشنری با pickle

یک دیکشنری را pickle کنید و دوباره load کنید.


52. مرتب‌سازی فایل متنی بر اساس طول خط

خواندن فایل، مرتب‌سازی خطوط و ذخیره در فایل جدید.


53. استخراج ایمیل‌ها از متن

با regex همه ایمیل‌های موجود در متن را چاپ کنید.


54. استخراج شماره تلفن از متن

با regex همه شماره‌های تلفن موجود در متن را پیدا کنید.


55. ایجاد گزارش HTML ساده از داده‌ها

داده‌ها را به صورت جدول HTML ذخیره کنید.


56. ذخیره و خواندن داده‌ها با JSON پیشرفته

دیکشنری‌های تو در تو ذخیره و بازیابی کنید.


57. پیاده‌سازی تابع جستجوی خطی و باینری

دو تابع ساده برای جستجوی عناصر در لیست.


58. شمارش تکرار عناصر با Counter

لیست ورودی و استفاده از collections.Counter برای نمایش تعداد تکرار هر عنصر.


59. تشخیص عدد Armstrong

بررسی عدد ورودی برای خاصیت Armstrong.


60. تولید رمز عبور تصادفی با طول مشخص

استفاده از random و کاراکترها برای ایجاد پسورد امن.
بخش ۳: پروژه‌های پیشرفته (سوال 61–100)

61. شبیه‌ساز ATM

ورود کارت، بررسی موجودی، برداشت و واریز پول با حلقه و شرط.


62. مدیریت لیست خرید با فایل

اضافه، حذف، نمایش اقلام و ذخیره لیست در فایل.


63. بازی حدس عدد با سطح دشواری

سطح آسان، متوسط، سخت، تعداد دفعات مجاز حدس.


64. ماشین حساب گرافیکی ساده با Tkinter

دکمه‌ها برای اعداد و عملیات، نمایش نتیجه.


65. نمودار ساده با matplotlib

گرفتن داده‌ها و رسم نمودار میله‌ای یا خطی.


66. شبیه‌سازی پرتاب سکه با احتمال دلخواه

n بار پرتاب و نمایش تعداد شیر و خط.


67. شبیه‌سازی تاس چندوجهی

n بار پرتاب و نمایش فراوانی هر عدد.


68. ایجاد دفترچه تلفن با امکان جستجو

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


69. شبیه‌سازی صف نوبت (Queue)

افزودن، حذف، نمایش عناصر صف.


70. پیاده‌سازی پشته (Stack) با لیست

push, pop, نمایش محتویات پشته.


71. بازی حدس کلمه (Hangman)

انتخاب کلمه، دریافت ورودی حروف، نمایش پیشرفت بازی.


72. مرتب‌سازی دیکشنری بر اساس مقدار

دیکشنری ورودی و خروجی مرتب شده بر اساس مقدار.


73. تبدیل تاریخ میلادی به شمسی

گرفتن تاریخ ورودی و نمایش معادل شمسی با jdatetime.


74. بررسی متقارن بودن ماتریس

گرفتن ماتریس ورودی و چک کردن اینکه ماتریس متقارن است یا خیر.


75. محاسبه ماتریس وارون (Inverse)

با استفاده از numpy ماتریس وارون را محاسبه کنید.


76. شبیه‌سازی بازی تخته‌ای ساده (مثل XO)

دو بازیکن و چک کردن برنده.


77. استخراج لینک‌ها از یک فایل HTML

با regex یا BeautifulSoup همه لینک‌ها را پیدا کنید.


78. شمارش کلمات و حروف بزرگ/کوچک در فایل

فایل ورودی و نمایش تعداد هر نوع.


79. پیدا کردن فایل‌های تکراری در پوشه

بررسی محتوای فایل‌ها و نمایش فایل‌های یکسان.


80. فشرده‌سازی فایل‌ها با zipfile

ایجاد فایل zip از چند فایل مشخص.


81. باز کردن و استخراج zip

باز کردن فایل zip و استخراج محتویات.


82. دانلود فایل از اینترنت

استفاده از requests برای دانلود یک فایل.


83. ارسال ایمیل ساده با smtplib

ارسال ایمیل با مشخص کردن فرستنده، گیرنده و متن.


84. پیاده‌سازی تابع Fibonacci بازگشتی و تکراری

محاسبه n جمله اول با دو روش.


85. نمایش تقویم ماهانه با calendar

گرفتن ماه و سال و نمایش تقویم.


86. بررسی عدد اول بودن

تابع برای بررسی عدد اول و نمایش لیست اعداد اول تا n.


87. مرتب‌سازی لیست دیکشنری بر اساس چند کلید

لیست دیکشنری ورودی و مرتب‌سازی بر اساس دو یا چند فیلد.


88. خواندن JSON و محاسبه آماری

جمع، میانگین، بزرگ‌ترین و کوچک‌ترین مقدار یک کلید عددی.


89. بررسی ایمیل معتبر با regex

بررسی رشته‌های ورودی برای مطابقت با الگوی ایمیل.


90. تولید QR Code از متن ورودی

با کتابخانه qrcode ایجاد کد QR و ذخیره در فایل.


91. رمزگذاری و رمزگشایی Base64

گرفتن متن، تبدیل به Base64 و بازگرداندن آن.


92. وب‌اسکرپینگ ساده با requests و BeautifulSoup

گرفتن عنوان یک صفحه وب.


93. بررسی دسترسی به اینترنت

پینگ سایت یا بررسی با requests.get.


94. ذخیره داده‌ها به CSV از دیکشنری‌های تو در تو

داده‌ها را flatten کرده و ذخیره در CSV.


95. ایجاد و نمایش نمودار پای (Pie Chart)

داده ورودی و رسم نمودار پای با matplotlib.


96. شبیه‌سازی قرعه‌کشی

انتخاب تصادفی از یک لیست شرکت‌کننده‌ها.


97. پردازش تصویر ساده با PIL

باز کردن تصویر، تغییر اندازه، ذخیره نسخه جدید.


98. رسم نمودار هیستوگرام تصویر

با matplotlib هیستوگرام شدت رنگ تصویر.


99. تشخیص لبه‌ها در تصویر با OpenCV

استفاده از cv2.Canny برای یافتن لبه‌ها.


100. پروژه ترکیبی: دفترچه تلفن گرافیکی با Tkinter

شامل افزودن، حذف، ویرایش، جستجو و ذخیره در فایل.
فصل هوش مصنوعی و یادگیری ماشین / یادگیری عمیق

---

سوالات مقدماتی (1–20)

1. نصب کتابخانه scikit-learn

pip install scikit-learn

2. نصب کتابخانه pandas

pip install pandas

3. نصب کتابخانه numpy

pip install numpy

4. ایجاد یک آرایه numpy

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)

5. تبدیل یک لیست به DataFrame pandas

import pandas as pd
data = [[1, 'Ali'], [2, 'Sara']]
df = pd.DataFrame(data, columns=['ID', 'Name'])
print(df)

6. خواندن فایل CSV با pandas

import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())

7. نمایش اطلاعات آماری DataFrame

print(df.describe())

8. جدا کردن ویژگی‌ها و برچسب‌ها (X و y)

X = df[['feature1', 'feature2']]
y = df['label']

9. تقسیم داده‌ها به مجموعه آموزش و تست

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

10. آموزش یک مدل رگرسیون خطی

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)

11. پیش‌بینی با مدل آموزش دیده

predictions = model.predict(X_test)
print(predictions)

12. محاسبه خطای میانگین مربعات (MSE)

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, predictions)
print(mse)

13. آموزش مدل طبقه‌بندی KNN

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

14. پیش‌بینی کلاس‌ها با KNN

y_pred = knn.predict(X_test)
print(y_pred)

15. محاسبه دقت مدل طبقه‌بندی

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(accuracy)

16. نرمال‌سازی داده‌ها با MinMaxScaler

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

17. تبدیل برچسب‌ها به اعداد با LabelEncoder

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_encoded = le.fit_transform(y)

18. آموزش مدل درخت تصمیم (Decision Tree)

from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier()
tree.fit(X_train, y_train)

19. رسم درخت تصمیم با matplotlib

from sklearn.tree import plot_tree
import matplotlib.pyplot as plt
plot_tree(tree, filled=True)
plt.show()

20. استفاده از cross-validation

from sklearn.model_selection import cross_val_score
scores = cross_val_score(knn, X, y, cv=5)
print(scores)


---
سوالات مقدماتی-متوسط (21–40)
21. آموزش مدل جنگل تصادفی (Random Forest)
from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(n_estimators=100, random_state=42) rf.fit(X_train, y_train)
22. پیش‌بینی با مدل جنگل تصادفی
y_pred_rf = rf.predict(X_test) print(y_pred_rf)
23. محاسبه دقت جنگل تصادفی
accuracy_rf = accuracy_score(y_test, y_pred_rf) print(accuracy_rf)
24. آموزش مدل SVM (ماشین بردار پشتیبان)
from sklearn.svm import SVC svm_model = SVC(kernel='linear') svm_model.fit(X_train, y_train)
25. پیش‌بینی با SVM
y_pred_svm = svm_model.predict(X_test) print(y_pred_svm)
26. آموزش مدل Naive Bayes
from sklearn.naive_bayes import GaussianNB nb = GaussianNB() nb.fit(X_train, y_train)
27. پیش‌بینی با Naive Bayes
y_pred_nb = nb.predict(X_test) print(y_pred_nb)
28. نمایش ماتریس درهم‌ریختگی (Confusion Matrix)
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred) print(cm)
29. رسم نمودار ماتریس درهم‌ریختگی با seaborn
import seaborn as sns sns.heatmap(cm, annot=True, fmt="d") plt.show()
30. آموزش مدل رگرسیون لجستیک
from sklearn.linear_model import LogisticRegression logreg = LogisticRegression() logreg.fit(X_train, y_train)
31. پیش‌بینی با رگرسیون لجستیک
y_pred_logreg = logreg.predict(X_test) print(y_pred_logreg)
32. نرمال‌سازی ویژگی‌ها با StandardScaler
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X)
33. کاهش بعد با PCA (Principal Component Analysis)
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) print(X_pca[:5])
34. نمایش نقاط بعد از PCA
plt.scatter(X_pca[:,0], X_pca[:,1], c=y) plt.show()
35. آموزش مدل K-Means برای خوشه‌بندی
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3, random_state=42) kmeans.fit(X_scaled) print(kmeans.labels_)
36. رسم خوشه‌های K-Means
plt.scatter(X_scaled[:,0], X_scaled[:,1], c=kmeans.labels_) plt.show()
37. محاسبه silhouette score خوشه‌بندی
from sklearn.metrics import silhouette_score score = silhouette_score(X_scaled, kmeans.labels_) print(score)
38. استفاده از train_test_split با stratify
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.2)
39. آموزش مدل Gradient Boosting
from sklearn.ensemble import GradientBoostingClassifier gb = GradientBoostingClassifier() gb.fit(X_train, y_train)
40. پیش‌بینی و محاسبه دقت Gradient Boosting
y_pred_gb = gb.predict(X_test) accuracy_gb = accuracy_score(y_test, y_pred_gb) print(accuracy_gb)
سوالات پیشرفته‌تر-یادگیری عمیق (41–60)
41. ایجاد مدل شبکه عصبی با Keras
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential([ Dense(32, activation='relu', input_shape=(X_train.shape[1],)), Dense(16, activation='relu'), Dense(1, activation='sigmoid') ])
42. کامپایل مدل
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
43. آموزش مدل شبکه عصبی
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
44. پیش‌بینی با شبکه عصبی
y_pred_nn = (model.predict(X_test) > 0.5).astype("int32") print(y_pred_nn)
45. ارزیابی دقت شبکه عصبی
loss, accuracy = model.evaluate(X_test, y_test) print(accuracy)
46. اضافه کردن Dropout برای جلوگیری از overfitting
from tensorflow.keras.layers import Dropout model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dropout(0.5), Dense(32, activation='relu'), Dense(1, activation='sigmoid') ])
47. آموزش مدل با EarlyStopping
from tensorflow.keras.callbacks import EarlyStopping early_stop = EarlyStopping(patience=5, restore_best_weights=True) model.fit(X_train, y_train, epochs=50, callbacks=[early_stop], validation_split=0.2)
48. شبکه عصبی با چند کلاس (Multi-class)
model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dense(3, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
49. شبکه عصبی کانولوشنی (CNN) ساده برای تصاویر
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), MaxPooling2D((2,2)), Flatten(), Dense(10, activation='softmax') ])
50. شبکه عصبی بازگشتی (RNN) ساده برای داده‌های زمانی
from tensorflow.keras.layers import SimpleRNN model = Sequential([ SimpleRNN(50, input_shape=(timesteps, features), activation='tanh'), Dense(1) ])
51. استفاده از LSTM برای پیش‌بینی سری‌های زمانی
from tensorflow.keras.layers import LSTM model = Sequential([ LSTM(50, input_shape=(timesteps, features)), Dense(1) ])
52. استفاده از embedding برای متن
from tensorflow.keras.layers import Embedding, GlobalAveragePooling1D model = Sequential([ Embedding(input_dim=10000, output_dim=64, input_length=maxlen), GlobalAveragePooling1D(), Dense(1, activation='sigmoid') ])
53. پیش‌بینی متن با مدل LSTM
y_pred_text = (model.predict(X_test) > 0.5).astype("int32")
54. استفاده از callbacks برای ذخیره بهترین مدل
from tensorflow.keras.callbacks import ModelCheckpoint checkpoint = ModelCheckpoint("best_model.h5", save_best_only=True) model.fit(X_train, y_train, epochs=20, callbacks=[checkpoint])
55. بارگذاری مدل ذخیره شده
from tensorflow.keras.models import load_model model = load_model("best_model.h5")
56. پیش‌بینی تصویر با CNN آموزش دیده
y_pred_img = model.predict(X_test_images)
57. استفاده از ImageDataGenerator برای افزایش داده‌ها
from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator(rotation_range=20, horizontal_flip=True) datagen.fit(X_train_images)
58. محاسبه ماتریس درهم‌ریختگی برای multi-class
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred_classes)
59. رسم نمودار دقت و خطا در هر epoch
import matplotlib.pyplot as plt plt.plot(history.history['accuracy'], label='train') plt.plot(history.history['val_accuracy'], label='val') plt.legend() plt.show()
60. ذخیره تاریخچه آموزش مدل به CSV
import pandas as pd pd.DataFrame(history.history).to_csv("training_history.csv")
– ترکیبی و حرفه‌ای:
سوالات ترکیبی و حرفه‌ای (61–100)
61. شبیه‌ساز ATM با کلاس‌ها و منو
class ATM: def __init__(self, balance=0): self.balance = balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): if amount <= self.balance: self.balance -= amount else: print("Insufficient balance") atm = ATM(1000) atm.deposit(500) atm.withdraw(200) print(atm.balance)
62. پیش‌بینی با مدل از فایل CSV ورودی
import pandas as pd X_new = pd.read_csv("new_data.csv") y_pred = model.predict(X_new)
63. ذخیره مدل TensorFlow به فرمت SavedModel
model.save("my_model")
64. بارگذاری مدل SavedModel
from tensorflow.keras.models import load_model model = load_model("my_model")
65. نرمال‌سازی داده‌ها با MinMaxScaler
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X)
66. نرمال‌سازی داده‌های جدید
X_new_scaled = scaler.transform(X_new)
67. استفاده از GridSearchCV برای انتخاب هایپرپارامتر
from sklearn.model_selection import GridSearchCV from sklearn.ensemble import RandomForestClassifier params = {'n_estimators':[50,100], 'max_depth':[5,10]} grid = GridSearchCV(RandomForestClassifier(), param_grid=params) grid.fit(X_train, y_train) print(grid.best_params_)
68. کاهش ابعاد با PCA
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_pca = pca.fit_transform(X)
69. نمایش داده‌ها بعد از PCA
import matplotlib.pyplot as plt plt.scatter(X_pca[:,0], X_pca[:,1], c=y) plt.show()
70. پیاده‌سازی شبکه GAN ساده
# Generator from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model input_gen = Input(shape=(100,)) x = Dense(128, activation='relu')(input_gen) output_gen = Dense(784, activation='sigmoid')(x) generator = Model(input_gen, output_gen)
71. تبدیل تصویر به آرایه برای CNN
from tensorflow.keras.preprocessing import image img = image.load_img("digit.png", target_size=(28,28), color_mode="grayscale") x = image.img_to_array(img)/255.0 x = x.reshape(1,28,28,1)
72. پیش‌بینی تصویر با مدل آموزش دیده CNN
pred = model.predict(x) print(pred.argmax())
73. ذخیره بردار ویژگی‌ها از یک لایه میانی
from tensorflow.keras.models import Model feature_model = Model(inputs=model.input, outputs=model.layers[-2].output) features = feature_model.predict(X_test)
74. استفاده از Tokenizer برای متن
from tensorflow.keras.preprocessing.text import Tokenizer tokenizer = Tokenizer(num_words=1000) tokenizer.fit_on_texts(texts) sequences = tokenizer.texts_to_sequences(texts)
75. Padding دنباله‌ها برای مدل LSTM
from tensorflow.keras.preprocessing.sequence import pad_sequences X_pad = pad_sequences(sequences, maxlen=100)
76. استفاده از Embedding در LSTM
from tensorflow.keras.layers import Embedding, LSTM, Dense model = Sequential([ Embedding(1000, 64, input_length=100), LSTM(32), Dense(1, activation='sigmoid') ])
77. محاسبه F1-score مدل
from sklearn.metrics import f1_score print(f1_score(y_test, y_pred_nn))
78. ذخیره ماتریس confusion به فایل CSV
import pandas as pd pd.DataFrame(cm).to_csv("confusion_matrix.csv")
79. رسم نمودار Loss و Accuracy با Seaborn
import seaborn as sns sns.lineplot(data=history.history['loss'], label='train_loss') sns.lineplot(data=history.history['val_loss'], label='val_loss')
80. ترکیب داده‌های مختلف با pandas برای آموزش
df = pd.concat([df1, df2], axis=0)
81. استفاده از مدل از پیش آموزش دیده (Pretrained) ResNet
from tensorflow.keras.applications import ResNet50 model = ResNet50(weights='imagenet')
82. استخراج ویژگی‌ها با مدل Pretrained
from tensorflow.keras.models import Model feat_model = Model(inputs=model.input, outputs=model.layers[-2].output) features = feat_model.predict(X_images)
83. فشرده‌سازی مدل با TFLite
import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model("my_model") tflite_model = converter.convert()
84. استفاده از EarlyStopping و ReduceLROnPlateau
from tensorflow.keras.callbacks import ReduceLROnPlateau reduce_lr = ReduceLROnPlateau(patience=3, factor=0.5)
85. ایجاد آموزش با داده‌های دسته‌بندی شده (Class Weights)
from sklearn.utils import class_weight weights = class_weight.compute_class_weight('balanced', classes=np.unique(y_train), y=y_train)
86. پیش‌بینی چند برچسبی (Multi-label)
model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dense(3, activation='sigmoid') ])
87. ذخیره پیش‌بینی‌ها به CSV
pd.DataFrame(y_pred, columns=["label"]).to_csv("predictions.csv", index=False)
88. اجرای مدل روی GPU با TensorFlow
import tensorflow as tf print(tf.config.list_physical_devices('GPU'))
89. نمایش شکل شبکه با plot_model
from tensorflow.keras.utils import plot_model plot_model(model, to_file='model.png', show_shapes=True)
90. استفاده از callbacks سفارشی برای ذخیره معیارها
class MyCallback(tf.keras.callbacks.Callback): def on_epoch_end(self, epoch, logs=None): print(f"Epoch {epoch}: val_acc={logs['val_accuracy']}")
91. محاسبه ROC AUC برای مدل باینری
from sklearn.metrics import roc_auc_score roc_auc_score(y_test, y_pred_nn)
92. تبدیل تصاویر رنگی به خاکستری برای CNN
X_gray = X_images.mean(axis=-1, keepdims=True)/255.0
93. استفاده از BatchNormalization
from tensorflow.keras.layers import BatchNormalization model = Sequential([ Dense(64, activation='relu'), BatchNormalization(), Dense(1, activation='sigmoid') ])
94. Dropout در شبکه CNN
Conv2D(32, (3,3), activation='relu'), Dropout(0.3)
95. افزایش داده متن با Synonyms Replacement
# جایگزینی واژه‌ها با مترادف‌ها برای data augmentation
96. ذخیره وزن‌های مدل به HDF5
model.save_weights("weights.h5")
97. بارگذاری وزن‌های ذخیره شده
model.load_weights("weights.h5")
98. استفاده از callbacks برای EarlyStopping + ModelCheckpoint
model.fit(X_train, y_train, epochs=50, callbacks=[early_stop, checkpoint])
99. استفاده از TensorBoard برای مانیتورینگ
from tensorflow.keras.callbacks import TensorBoard tensorboard = TensorBoard(log_dir='./logs')
100. محاسبه دقت مدل با scikit-learn
from sklearn.metrics import accuracy_score print(accuracy_score(y_test, y_pred_nn))