Google Colaboratory cho phép thực thi Python trên nền tảng đám mây mà không cần cài đặt hay cấu hình máy tính. Ưu điểm của Google Colaboratory có thể kể tới như chạy Python ở bất kì thiết bị nào mà không cần cài đặt chỉ cần thiết bị đó được kết nối với internet, có thể chia sẻ với mọi người thuận lợi cho việc làm việc nhóm, và đặt biệt là miễn phí sử dụng GPU (thường là Nvidia K80s, T4s, P4s và P100s) và TPU cho các dự án về Deep Learning. Bên cạnh đó Google Colaboratory cũng có
một số bất lợi có thể kể đến như chỉ có thể update và sử dụng dữ liệu trực tiếp trong 10-12 tiếng, sau thời gian đó dữ liệu sẽ mất hoàn toàn, Google Colaboratory cho người dùng sử dụng GPU miễn phí nhưng thời gian sử dụng chỉ từ 6-7 tiếng tùy vào tác vụ và GPU sẽ không được người dùng chọn mà nó sẽ thay đổi liên tục.
25
Hình 19: Logo của Google Colaboratory
Chính vì những ưu điểm đó nên em chọn Google Colaboratory để huấn luyện YOLOv4. Và vì nhược điểm trên nên em đã chọn cách tải file zip chứa dữ liệu lên drive và kết nối với Google Colaboratory để tránh tình trạng mất dữ liệu. Tại đây Google Colaboratory có tác dụng như một Virtual Machine computing có nhiệm vụ là tính toán xử lý dữ liệu và Google Drive là nơi lưu trữ dữ liệu. Để Google Colaboratory có thể truy cập được dữ liệu tại Google Drive thì em sẽ mount drive với câu lệnh.
Hình 20: Kết nối Google Colaboratory và Google Drive.
Bắt đầu, để Google Colaboratory có thể chạy ổn định khi huấn luyện thì cần phải bật GPU của Google Colaboratory lên.
26
Hình 21: Hình ảnh mở GPU trên Google Colaboratory.
Kiểm tra xem GPU mà em được Google Colaboratory cho sử dụng miễn phí.
Hình 22: Hình ảnh kiểm tra GPU được Google Colaboratory cho phép sử dụng.
Ở đây em được sử dụng GPU Tesla T4 với CUDA phiên bản 11,2. Với GPU này, em đánh giá là đủ để huấn luyện.
27
Sau khi kết nối với Google Drive và kiểm tra GPU em đặt đường dẫn để lưu log và biểu đồ mAP về để có thể giữ lại dữ liệu này ngay trên Drive. Ở đây em sẽ giảm size đầu vào xuống còn 416x416 để giảm thời gian của quá trình huấn luyện.
Hình 23: Địa chỉ lưu và thay đổi đầu vào của dữ liệu.
Sử dụng source code có sẵn bên trong chứa các file bash về cài đặt thích hợp cho quá trình huấn luyện.
Hình 24: Sử dụng source code có sẵn để cài đặt.
Từ mã nguồn đã tải ở trên em chạy file prepare_data.sh để có thể lấy dữ liệu về và tạo ra file text chứa chú thích dữ liệu.
Hình 25: Lấy dữ liệu bằng file bash
Tiếp theo em tải Darknet về để huấn luyện.
Hình 26: Sử dụng mã nguồn mở của YOLO để huấn luyện.
28
Cấu hình file Makelife trong thư mục đã tải ở trên theo từng GPU mà Google Colaboratory cho phép sử dụng
Hình 27: Cấu hình lại file Makelife cho phù hợp với các thông số.
Với:
• “37” cho Tesla K80
• “60” cho Tesla P100
• “61” cho Tesla P4
• “75” cho Tesla T4
Quá trình huấn luyện sẽ sinh ra các file log và file hình ảnh được lưu ở thư mục vào 1 thư mục ở đây em sẽ tạo thư mục backup ở Drive để lưu trữ. Chính vì lẽ đó
mà Drive phải còn trên 2GB trống.
Hình 28: Nơi lưu trữ các file trong quá trình huấn luyện.
Để quá trình huấn luyện diễn ra tốt em sẽ sử dụng pre-trained có sẵn của YOLO (“yolov4.conv.137”) từ file prepare_training.sh.
Hình 29: Sử dụng file bash để tải file pre-traind.
29
Với số vòng lặp là 4000 vòng thời gian huấn luyện rơi vào hơn 6 tiếng.
Hình 30: Bắt đầu huấn luyện.
Hình 31: Các thông số bên trong quá trình huấn luyện.
Khi quá trình hoàn thành sẽ sinh ra 7 file weight và được lưu trên thư mục backup với:
• yolov4-crowdhuman-414x414_last.weights: file weight cuối cùng sau khi huấn luyện hoàn tất. Nếu chúng ta tiếp tục huấn luyện thì sử dụng file weight này.
• yolov4-crowdhuman-414x414_final.weights: file weight hoàn tất quá trình huấn luyện.
• yolov4-crowdhuman-414x414_best.weights: file weight được chọn là tốt nhất trong quá trình huấn luyện. Đây là file weight sẽ được đưa vào hệ thống sử dụng.
• yolov4-crowdhuman-414x414_1000.weights: file weight hoàn thành ở vòng lập thứ 1000.
• yolov4-crowdhuman-414x414_2000.weights: file weight hoàn thành ở vòng lập thứ 2000.
30
• yolov4-crowdhuman-414x414_3000.weights: file weight hoàn thành ở vòng lập thứ 3000.
• yolov4-crowdhuman-414x414_4000.weights: file weight hoàn thành ở vòng lập thứ 4000.
Trong quá trình huấn luyện file log sẽ được sinh ra chứa thông tin trong quá trình huấn luyện, ta có thể xem file khi đang huấn luyện.
Hình 32: File log của quá trình huấn luyện sau khi hoàn thành.
Bây giờ em sẽ sử dụng file weight tốt nhất để chạy thử.
Hình 33: Chạy thử file weight tốt nhất với hình có sẵn.
31
Hình 34: Kết quả quá trình chạy thử.
Cùng với đó ta nhận được hình ảnh chart.png. Đây là biểu đồ loss/mAP.
32
Hình 35: Biểu đồ cho quá trình huấn luyện.
Quá trình huấn luyện hoàn thành với mAP lên đến 78% và avg loss = 24.7803 ở 4000 vòng lặp. Với những chỉ số trên mô hình được xem là thành công.
33