Hướng dẫn dùng plotting car python
PyTorch là một framework được xây dựng dựa trên python cung cấp nền tảng tính toán khoa học phục vụ lĩnh vực Deep learning. Pytorch tập trung vào 2 khả năng chính:
Ưu điểm:
Nhược điểm:
Ma trận
output:
Chúng ta đã hiểu qua về numpy array giờ hãy cùng xem cách implement tensor array(pytorch array).
output:
Phân phối là một trong những kĩ thuật được sử dụng nhiều nhất trong coding. Hãy cùng xem cách làm nó trong pytorch. Hãy cùng so sánh numpy và tensor:
output:
Với tensor:
output:
Kể cả khi tôi sử dụng pytorch cho neural networks, tôi vẫn cảm thấy tốt hơn khi sử dụng numpy. Vì thế mà tôi thường xuyên convert kết quả của neural network từ tensor sang numpy array để visualize hoặc đánh giá. Hãy cùng xem cách chuyển qua lại giữa tensor và numpy array:
output:
Toán học cơ bản với pytorch
0output: 1VariablesNếu các bạn chưa có kiến thức về backpropagation hay gradient thì các bạn nên đọc bài viết về neural network của mình tại đây để có thể hiểu được các phần tiếp theo. Variable là class bao bọc (wrapper) Tensor cho phép thực hiện tính toán đạo hàm. Variable lưu trữ data (tensor) và grad (gradient). 2output: 3
4output: 5AutogradMinh họa cách tính Gradient tự động trong Pytorch bằng ví dụ sau: Cho đồ thị tính toán như hình. Đầu vào [x,y,z] = [5,3,7]. Tất cả các trọng số w đều được khởi tạo là 0.5. Tính kết quả (biến result) khi ta cho [x,y,z] qua mạng (forward) và gradient của mỗi trọng số w (backward). 6Giải thích : Forward: o1 = x * w1 * y * w2 = 5 * 0.5 * 3 * 0.5 = 3.75 o2 = o1 * w4 + z * w3 = 3.75 * 0.5 + 7 * 0.5 = 5.375 result = o2 * w5 = 5.375 * 0.5 = 2.6875 Backward: Cần chú ý công thức đạo hàm của hàm hợp:
Đạo hàm của result theo w5 = (o2 * w5)' = o2 = 5.375 Đạo hàm của result theo o2 = f'(o2) = w5 = 0.5
Đạo hàm của result theo w3 = f'(o2) * o2'(w3) = 0.5 * z = 3.5 Đạo hàm của result theo w4 = f'(o2) * o2'(w4) = 0.5 * o1 = 1.875 Đạo hàm của result theo o1 = g'(o1) = f'(o2) * o2'(o1) = 0.5 * w4 = 0.25
Đạo hàm của result theo w1 = g'(o1) * o1'(w1) = 0.25 * x * y * w2 = 1.875 Đạo hàm của result theo w2 = g'(o1) * o1'(w2) = 0.25 * x * w1 * y = 1.875 Linear RegressionNếu các bạn chưa có kiến thức về Linear Regression thì có thể tham khảo tại đây.
7Hình trên ta đã plot dữ liệu mà ta thu thập được và câu hỏi đặt ra là tìm số lượng xe sẽ bán được khi giá ô tô là 100. Để trả lời câu hỏi này ta sẽ cần sử dụng Linear Regression. Về cơ bản chúng ta sẽ cố tạo ra một đường thẳng fit với dữ liệu đã được plot ở trên và cố gắng tinh chỉnh đường thẳng đó sao cho giảm được độ lệch vs data. Các bước thực hiện Linear Regression
8output: 9
0Mình hy vọng với phần 1 này các bạn đã làm quen được với pytorch và có thể tự mình code thành thục được một số chức năng cơ bản. Ở phần 2 chúng ta sẽ đi vào tìm hiểu cách implement pytorch cho một số mô hình deep learning. |