MinAI - Về trang chủ
Quiz
21/2130 phút
Đang tải...

Quiz tổng hợp

Kiểm tra kiến thức toàn khóa học Deep Learning

0

🎯 Mục tiêu bài Quiz

TB5 min

Kiểm tra kiến thức của bạn qua các câu hỏi trắc nghiệm và bài tập thực hành!

✅ 18 câu hỏi trắc nghiệm (6 phần)

✅ 3 bài tập thực hành

✅ Yêu cầu: Hoàn thành bài 1-20

Thời gian: 30 phút | Độ khó: Tổng hợp | Đạt yêu cầu: ≥ 13/18 câu đúng

1

Phần 1: Neural Network Basics

TB5 min
2

Phần 2: Convolutional Neural Networks (CNN)

TB5 min
3

Phần 3: RNN & LSTM

TB5 min
4

Phần 4: Transformers & Attention

TB5 min
5

Phần 5: Transfer Learning

TB5 min
6

Phần 6: Deployment & Optimization

TB5 min
7

Phần 7: Bài tập thực hành

TB5 min

Bài tập 1: Xây dựng CNN cho Image Classification

Tình huống: Bạn cần xây dựng một mô hình CNN phân loại ảnh CIFAR-10 (10 classes, ảnh 32×32×3).

Hãy thiết kế kiến trúc CNN phù hợp, bao gồm:

  1. Các lớp Convolution, Pooling, Batch Normalization
  2. Dropout để regularization
  3. Fully connected layers ở cuối
Đáp án
Python
1import tensorflow as tf
2from tensorflow.keras import layers, models
3
4model = models.Sequential([
5 # Block 1
6 layers.Conv2D(32, (3,3), padding='same', activation='relu', input_shape=(32,32,3)),
7 layers.BatchNormalization(),
8 layers.Conv2D(32, (3,3), padding='same', activation='relu'),
9 layers.BatchNormalization(),
10 layers.MaxPooling2D((2,2)),
11 layers.Dropout(0.25),
12
13 # Block 2
14 layers.Conv2D(64, (3,3), padding='same', activation='relu'),
15 layers.BatchNormalization(),
16 layers.Conv2D(64, (3,3), padding='same', activation='relu'),
17 layers.BatchNormalization(),
18 layers.MaxPooling2D((2,2)),
19 layers.Dropout(0.25),
20
21 # Block 3
22 layers.Conv2D(128, (3,3), padding='same', activation='relu'),
23 layers.BatchNormalization(),
24 layers.MaxPooling2D((2,2)),
25 layers.Dropout(0.25),
26
27 # Classifier
28 layers.Flatten(),
29 layers.Dense(256, activation='relu'),
30 layers.BatchNormalization(),
31 layers.Dropout(0.5),
32 layers.Dense(10, activation='softmax')
33])
34
35model.compile(
36 optimizer='adam',
37 loss='sparse_categorical_crossentropy',
38 metrics=['accuracy']
39)
40
41model.summary()
42# Tổng ~600K params, đạt ~90% accuracy trên CIFAR-10

Bài tập 2: Fine-tuning Pre-trained Model

Tình huống: Bạn có dataset ảnh y tế (2000 ảnh, 4 classes). Hãy viết code fine-tune ResNet50 pre-trained trên ImageNet cho bài toán này.

Đáp án
Python
1from tensorflow.keras.applications import ResNet50
2from tensorflow.keras import layers, models
3
4# 1. Load pre-trained ResNet50 (không lấy lớp FC cuối)
5base_model = ResNet50(weights='imagenet', include_top=False, input_shape=(224,224,3))
6
7# 2. Đóng băng các lớp pre-trained
8base_model.trainable = False
9
10# 3. Thêm classifier mới
11model = models.Sequential([
12 base_model,
13 layers.GlobalAveragePooling2D(),
14 layers.Dense(256, activation='relu'),
15 layers.Dropout(0.5),
16 layers.Dense(4, activation='softmax')
17])
18
19# 4. Train classifier mới (feature extraction)
20model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
21model.fit(train_data, epochs=10)
22
23# 5. Fine-tuning: mở khóa một số lớp cuối của ResNet50
24base_model.trainable = True
25for layer in base_model.layers[:-20]: # Đóng băng tất cả trừ 20 lớp cuối
26 layer.trainable = False
27
28model.compile(
29 optimizer=tf.keras.optimizers.Adam(1e-5), # Learning rate nhỏ
30 loss='sparse_categorical_crossentropy',
31 metrics=['accuracy']
32)
33model.fit(train_data, epochs=10)

Bài tập 3: Export và Tối ưu Model

Tình huống: Bạn đã train xong model PyTorch và cần deploy lên production. Hãy viết code export model sang ONNX và áp dụng quantization.

Đáp án
Python
1import torch
2import torch.onnx
3
4# 1. Export sang ONNX
5dummy_input = torch.randn(1, 3, 224, 224)
6torch.onnx.export(
7 model,
8 dummy_input,
9 "model.onnx",
10 opset_version=13,
11 input_names=['input'],
12 output_names=['output'],
13 dynamic_axes={'input': {0: 'batch_size'}, 'output': {0: 'batch_size'}}
14)
15
16# 2. Post-training Quantization (PyTorch)
17quantized_model = torch.quantization.quantize_dynamic(
18 model,
19 {torch.nn.Linear}, # Quantize Linear layers
20 dtype=torch.qint8
21)
22
23# 3. So sánh kích thước
24import os
25torch.save(model.state_dict(), "original.pth")
26torch.save(quantized_model.state_dict(), "quantized.pth")
27print(f"Original: {os.path.getsize('original.pth') / 1e6:.1f} MB")
28print(f"Quantized: {os.path.getsize('quantized.pth') / 1e6:.1f} MB")
29
30# 4. ONNX Runtime inference
31import onnxruntime as ort
32session = ort.InferenceSession("model.onnx")
33result = session.run(None, {"input": dummy_input.numpy()})
8

📊 Đánh giá kết quả

TB5 min
Số câu đúngĐánh giá
16-18🌟 Xuất sắc! Bạn nắm vững Deep Learning
13-15👍 Tốt! Cần ôn lại một số chủ đề
9-12📚 Cần học thêm, xem lại các bài
< 9🔄 Nên học lại từ đầu
9

🎓 Hoàn thành khóa học!

TB5 min

🎉 Tuyệt vời! Bạn đã hoàn thành toàn bộ khóa học Deep Learning!

Tiếp theo: Hãy áp dụng kiến thức vào các dự án thực tế và tiếp tục nghiên cứu các kiến trúc mới nhất!

Chúc mừng!

Bạn đã hoàn thành khóa học Deep Learning!

Kiến thức Deep Learning sẽ giúp bạn:

  • 🧠 Xây dựng Neural Networks cho mọi bài toán
  • 🖼️ Phát triển ứng dụng Computer Vision với CNN
  • 📝 Xử lý ngôn ngữ tự nhiên với RNN, LSTM, Transformer
  • 🚀 Deploy model lên production hiệu quả

Next steps:

  • Thực hành với các dự án Computer Vision và NLP
  • Tìm hiểu thêm về Generative AI (GANs, Diffusion Models)
  • Tham gia Kaggle competitions
  • Nghiên cứu các paper mới nhất trên arXiv