Làm việc với mô hình tiền huấn luyện

Deep Learning cho Ảnh với PyTorch

Michal Oleszak

Machine Learning Engineer

Tận dụng mô hình tiền huấn luyện

  • Huấn luyện từ đầu:

    • Mất nhiều thời gian
    • Cần nhiều dữ liệu
  • Mô hình tiền huấn luyện - đã được huấn luyện cho một tác vụ

    • Có thể dùng lại trực tiếp cho tác vụ mới
    • Cần điều chỉnh cho tác vụ mới (học chuyển giao)
  • Các bước tận dụng mô hình tiền huấn luyện:

    • Lưu & tải mô hình cục bộ
    • Tải mô hình torchvision
Deep Learning cho Ảnh với PyTorch

Lưu mô hình PyTorch hoàn chỉnh

  • torch.save()
  • Phần mở rộng mô hình: .pt hoặc .pth
  • Lưu trọng số bằng .state_dict()
    torch.save(model.state_dict(), "BinaryCNN.pth")
    
Deep Learning cho Ảnh với PyTorch

Tải mô hình PyTorch

  • Khởi tạo mô hình mới

    new_model = BinaryCNN()
    
  • Tải tham số đã lưu

    new_model.load_state_dict(torch.load('BinaryCNN.pth'))
    
Deep Learning cho Ảnh với PyTorch

Tải mô hình torchvision

from torchvision.models import (
    resnet18, ResNet18_Weights
)


weights = ResNet18_Weights.DEFAULT
model = resnet18(weights=weights)
transforms = weights.transforms()
  • Nhập kiến trúc resnet và trọng số
  • Lấy trọng số
  • Khởi tạo mô hình với trọng số
  • Lưu các phép biến đổi dữ liệu cần thiết
Deep Learning cho Ảnh với PyTorch

Chuẩn bị ảnh đầu vào mới

from PIL import Image

image = Image.open("cat013.jpg")

image_tensor = transform(image)
image_reshaped = image_tensors.unsqueeze(0)

 

ảnh mèo

  • Tải ảnh
  • Biến đổi ảnh
  • Đổi hình dạng ảnh
Deep Learning cho Ảnh với PyTorch

Tạo dự đoán mới

model.eval()


with torch.no_grad():
pred = model(image_reshaped).squeeze(0)
pred_cls = pred.softmax(0)
cls_id = pred_cls.argmax().item()
cls_name = weights.meta["categories"][cls_id]
print(cls_name)
Egyptian cat
  • Chế độ đánh giá cho suy luận
  • Tắt gradient
  • Đưa ảnh vào mô hình và bỏ chiều batch
  • Áp dụng softmax
  • Chọn lớp xác suất cao nhất và lấy chỉ số
  • Ánh xạ chỉ số lớp sang nhãn
  • In nhãn lớp
Deep Learning cho Ảnh với PyTorch

Ayo berlatih!

Deep Learning cho Ảnh với PyTorch

Preparing Video For Download...