Phân loại ảnh với ResNet
Bạn đã tạo mô hình từ ResNet18 được huấn luyện sẵn. Giờ là lúc kiểm thử nó trên một ảnh mẫu.
Bạn sẽ áp dụng các bước tiền xử lý (preprocessing transforms) cho một ảnh và phân loại ảnh đó. Bạn cần dùng lớp softmax() sau đó là argmax(), vì ResNet18 được huấn luyện trên một bộ dữ liệu đa lớp (multi-class).
Bạn đã chọn ảnh sau để dùng cho việc thử dự đoán:

Phép biến đổi tiền xử lý được lưu trong preprocess. Ảnh PIL đã được tải lên với tên img.
Bài tập này là một phần của khóa học
Deep Learning cho Ảnh với PyTorch
Hướng dẫn bài tập
- Áp dụng các phép biến đổi tiền xử lý cho ảnh và đổi hình dạng bằng
.unsqueeze(0)để thêm chiều batch. - Truyền ảnh qua mô hình, đổi hình dạng đầu ra bằng
.squeeze(0)để bỏ chiều batch, rồi thêm lớpsoftmax(). - Dùng
argmax()để chọn lớp có xác suất cao nhất.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Apply preprocessing transforms
batch = ____.____
# Apply model with softmax layer
prediction = ____.____.____
# Apply argmax
class_id = prediction.____.item()
score = prediction[class_id].item()
category_name = weights.meta["categories"][class_id]
print(category_name)