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)
---
بخش ۱ – شروع کار با 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)
---
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
52. محاسبه Optical Flow برای ردیابی حرکت
53. تشخیص چهره با Haar Cascade
54. رسم مستطیل دور چهرهها
55. تشخیص چشم در چهره
56. ردیابی شی با Color Detection
57. محاسبه Moments و مرکز شیء رنگی
58. تشخیص حرکات با Contours روی ماسک
59. رسم مسیر حرکت شیء روی تصویر
60. محاسبه زاویه بین دو خط
61. تبدیل تصویر به Sketch (طرح سیاه و سفید)
62. Cartoon Effect روی تصویر
63. اعمال فیلتر Canny روی تصویر رنگی
64. تشخیص QR Code با OpenCV
65. Trackbar برای تغییر Threshold در زمان اجرا
66. تشخیص حرکت با Frame Differencing
67. Histogram Equalization روی تصویر رنگی (YUV)
68. استخراج لبهها و اعمال ماسک روی تصویر اصلی
69. Template Matching برای پیدا کردن شیء در تصویر
70. Perspective Transform برای اسکن سند
71. اعمال Gaussian Pyramid برای Downsampling تصویر
72. اعمال Laplacian Pyramid برای تصویر
73. Blend دو تصویر با Pyramid Blending
74. Optical Character Recognition (OCR) با pytesseract
75. شمارش اشیا با Connected Components
76. تغییر رنگ شیء انتخاب شده با ماسک
77. رسم Bounding Box روی بیش از یک شیء
78. محاسبه Area کانتور و فیلتر کوچکترینها
بخش ۳ – پروژهها و کاربردهای پیشرفته (سوال 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)
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()
---
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 – بخش ۱: مقدماتی (سوال 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) برای تصاویر
22. کامپایل مدل CNN با categorical_crossentropy
23. ساخت یک شبکه بازگشتی ساده (RNN) با LSTM
24. استفاده از Embedding برای متن
25. بارگذاری دیتاست MNIST
26. نرمالسازی تصاویر MNIST
27. One-hot encoding برای برچسبها
28. Data augmentation با ImageDataGenerator
29. اضافه کردن BatchNormalization به مدل
30. استفاده از optimizer پیشرفته Adamax
31. ذخیره مدل به فرمت SavedModel
32. بارگذاری مدل SavedModel
33. استفاده از TensorBoard برای مانیتورینگ
34. آموزش مدل با validation_split
35. EarlyStopping و ReduceLROnPlateau با هم
36. مدل Functional API برای چند ورودی
37. محاسبه confusion matrix با sklearn
38. رسم نمودار Accuracy و Loss
39. استفاده از callbacks سفارشی
40. پیشبینی چند کلاس با softmax و argmax
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
42. تشخیص تصاویر سگ و گربه (Cat vs Dog)
43. تحلیل احساسات متن با LSTM
44. ترجمه متن با Seq2Seq
45. تشخیص شی در تصویر با Object Detection (YOLO)
46. پیشبینی سریهای زمانی با LSTM
47. تولید متن با RNN
48. تشخیص ناهنجاری (Anomaly Detection) با Autoencoder
49. کاهش ابعاد با PCA قبل از شبکه عصبی
50. استفاده از Dropout برای جلوگیری از overfitting
51. استفاده از BatchNormalization در CNN
52. EarlyStopping برای جلوگیری از overfitting
53. استفاده از ReduceLROnPlateau
54. ذخیره بهترین مدل با ModelCheckpoint
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 ساده
56. استفاده از pre-trained VGG16 برای feature extraction
57. fine-tuning مدل از پیش آموزش دیده
58. استفاده از tf.data برای pipeline دادهها
59. پیشبینی تصاویر جدید با مدل CNN
60. اندازهگیری دقت مدل با sklearn
# 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')
---
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
82. استفاده از Early Stopping برای جلوگیری از overfitting
83. Cross-validation برای مدلهای Deep Learning
84. ایجاد Embedding Layer در شبکه عصبی
85. استفاده از Dropout برای کاهش overfitting
86. آموزش مدل CNN برای CIFAR-10
87. پیشبینی با مدل آموزش دیده PyTorch
88. استفاده از DataLoader در PyTorch
89. تعریف Custom Dataset در PyTorch
90. استفاده از optimizer Adam در PyTorch
91. محاسبه loss با CrossEntropy
92. ذخیره و بارگذاری مدل PyTorch
93. افزایش دادهها با Albumentations
94. آموزش شبکه RNN برای پیشبینی توالیها
95. استفاده از GRU به جای LSTM
96. محاسبه accuracy و F1-score
97. استفاده از TensorFlow Hub برای مدلهای پیشآموزش دیده
98. ترکیب CNN و RNN برای دادههای تصویری و زمانی
99. آموزش GAN برای تولید تصویر واقعی
100. ارزیابی مدل با Confusion Matrix و ROC Curve
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)Kaggle
Google | nnlm | Kaggle
Token based text embeddings trained on various Google News datasets
فصل پروژهها و مسائل ترکیبی عملی – ۱۰۰ سوال
بخش ۱: پروژههای مبتدی (سوال 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. بررسی اندازه فایل
چاپ اندازه فایل موجود.
بخش ۱: پروژههای مبتدی (سوال 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 و کاراکترها برای ایجاد پسورد امن.
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
شامل افزودن، حذف، ویرایش، جستجو و ذخیره در فایل.
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)
---
---
سوالات مقدماتی (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)
22. پیشبینی با مدل جنگل تصادفی
23. محاسبه دقت جنگل تصادفی
24. آموزش مدل SVM (ماشین بردار پشتیبان)
25. پیشبینی با SVM
26. آموزش مدل Naive Bayes
27. پیشبینی با Naive Bayes
28. نمایش ماتریس درهمریختگی (Confusion Matrix)
29. رسم نمودار ماتریس درهمریختگی با seaborn
30. آموزش مدل رگرسیون لجستیک
31. پیشبینی با رگرسیون لجستیک
32. نرمالسازی ویژگیها با StandardScaler
33. کاهش بعد با PCA (Principal Component Analysis)
34. نمایش نقاط بعد از PCA
35. آموزش مدل K-Means برای خوشهبندی
36. رسم خوشههای K-Means
37. محاسبه silhouette score خوشهبندی
38. استفاده از train_test_split با stratify
39. آموزش مدل Gradient Boosting
40. پیشبینی و محاسبه دقت Gradient Boosting
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
42. کامپایل مدل
43. آموزش مدل شبکه عصبی
44. پیشبینی با شبکه عصبی
45. ارزیابی دقت شبکه عصبی
46. اضافه کردن Dropout برای جلوگیری از overfitting
47. آموزش مدل با EarlyStopping
48. شبکه عصبی با چند کلاس (Multi-class)
49. شبکه عصبی کانولوشنی (CNN) ساده برای تصاویر
50. شبکه عصبی بازگشتی (RNN) ساده برای دادههای زمانی
51. استفاده از LSTM برای پیشبینی سریهای زمانی
52. استفاده از embedding برای متن
53. پیشبینی متن با مدل LSTM
54. استفاده از callbacks برای ذخیره بهترین مدل
55. بارگذاری مدل ذخیره شده
56. پیشبینی تصویر با CNN آموزش دیده
57. استفاده از ImageDataGenerator برای افزایش دادهها
58. محاسبه ماتریس درهمریختگی برای multi-class
59. رسم نمودار دقت و خطا در هر epoch
60. ذخیره تاریخچه آموزش مدل به CSV
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 با کلاسها و منو
62. پیشبینی با مدل از فایل CSV ورودی
63. ذخیره مدل TensorFlow به فرمت SavedModel
64. بارگذاری مدل SavedModel
65. نرمالسازی دادهها با MinMaxScaler
66. نرمالسازی دادههای جدید
67. استفاده از GridSearchCV برای انتخاب هایپرپارامتر
68. کاهش ابعاد با PCA
69. نمایش دادهها بعد از PCA
70. پیادهسازی شبکه GAN ساده
71. تبدیل تصویر به آرایه برای CNN
72. پیشبینی تصویر با مدل آموزش دیده CNN
73. ذخیره بردار ویژگیها از یک لایه میانی
74. استفاده از Tokenizer برای متن
75. Padding دنبالهها برای مدل LSTM
76. استفاده از Embedding در LSTM
77. محاسبه F1-score مدل
78. ذخیره ماتریس confusion به فایل CSV
79. رسم نمودار Loss و Accuracy با Seaborn
80. ترکیب دادههای مختلف با pandas برای آموزش
81. استفاده از مدل از پیش آموزش دیده (Pretrained) ResNet
82. استخراج ویژگیها با مدل Pretrained
83. فشردهسازی مدل با TFLite
سوالات ترکیبی و حرفهای (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
85. ایجاد آموزش با دادههای دستهبندی شده (Class Weights)
86. پیشبینی چند برچسبی (Multi-label)
87. ذخیره پیشبینیها به CSV
88. اجرای مدل روی GPU با TensorFlow
89. نمایش شکل شبکه با plot_model
90. استفاده از callbacks سفارشی برای ذخیره معیارها
91. محاسبه ROC AUC برای مدل باینری
92. تبدیل تصاویر رنگی به خاکستری برای CNN
93. استفاده از BatchNormalization
94. Dropout در شبکه CNN
95. افزایش داده متن با Synonyms Replacement
96. ذخیره وزنهای مدل به HDF5
97. بارگذاری وزنهای ذخیره شده
98. استفاده از callbacks برای EarlyStopping + ModelCheckpoint
99. استفاده از TensorBoard برای مانیتورینگ
100. محاسبه دقت مدل با scikit-learn
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))