Tài liệu này cung cấp một cái nhìn tổng quan về việc cắt tỉa mô hình để giúp bạn xác định cách nó phù hợp với trường hợp sử dụng của bạn.
- Để đi sâu vào ví dụ từ đầu đến cuối, hãy xem ví dụ về Cắt tỉa với Keras .
- Để nhanh chóng tìm thấy các API bạn cần cho trường hợp sử dụng của mình, hãy xem hướng dẫn toàn diện về việc cắt tỉa .
- Để khám phá ứng dụng cắt tỉa cho suy luận trên thiết bị, hãy xem Cắt tỉa cho suy luận trên thiết bị với XNNPACK .
- Để xem ví dụ về cắt tỉa cấu trúc, hãy chạy hướng dẫn Cắt tỉa cấu trúc với độ thưa thớt 2 x 4 .
Tổng quan
Việc cắt tỉa trọng lượng dựa trên độ lớn dần dần loại bỏ trọng lượng mô hình trong quá trình đào tạo để đạt được độ thưa thớt của mô hình. Các mô hình thưa thớt dễ nén hơn và chúng ta có thể bỏ qua các số 0 trong quá trình suy luận để cải thiện độ trễ.
Kỹ thuật này mang lại những cải tiến thông qua nén mô hình. Trong tương lai, hỗ trợ khung cho kỹ thuật này sẽ cung cấp các cải tiến về độ trễ. Chúng tôi đã thấy những cải tiến gấp 6 lần trong việc nén mô hình với độ chính xác tối thiểu.
Kỹ thuật này đang được đánh giá trong các ứng dụng giọng nói khác nhau, chẳng hạn như nhận dạng giọng nói và chuyển văn bản thành giọng nói, và đã được thử nghiệm trên nhiều mô hình phiên dịch và thị giác khác nhau.
Ma trận tương thích API
Người dùng có thể áp dụng cách cắt tỉa bằng các API sau:
- Xây dựng mô hình:
tf.keras
chỉ với các mô hình Tuần tự và Chức năng - Phiên bản TensorFlow: TF 1.x cho phiên bản 1.14+ và 2.x.
-
tf.compat.v1
với gói TF 2.X vàtf.compat.v2
với gói TF 1.X không được hỗ trợ.
-
- Chế độ thực thi TensorFlow: cả biểu đồ và háo hức
- Đào tạo phân tán:
tf.distribute
với chỉ thực thi đồ thị
Chúng tôi đang trong lộ trình bổ sung hỗ trợ trong các lĩnh vực sau:
Kết quả
Phân loại hình ảnh
Người mẫu | Độ chính xác Top-1 không thưa thớt | Độ chính xác thưa thớt ngẫu nhiên | Độ thưa thớt ngẫu nhiên | Độ chính xác thưa thớt có cấu trúc | Có cấu trúc thưa thớt |
---|---|---|---|---|---|
Khởi đầuV3 | 78,1% | 78,0% | 50% | 75,8% | 2 bằng 4 |
76,1% | 75% | ||||
74,6% | 87,5% | ||||
MobilenetV1 224 | 71,04% | 70,84% | 50% | 67,35% | 2 bằng 4 |
MobilenetV2 224 | 71,77% | 69,64% | 50% | 66,75% | 2 bằng 4 |
Các mô hình đã được thử nghiệm trên Imagenet.
Dịch
Người mẫu | BLEU không thưa thớt | BLEU thưa thớt | Thưa thớt |
---|---|---|---|
GNMT EN-DE | 26,77 | 26,86 | 80% |
26,52 | 85% | ||
26,19 | 90% | ||
GNMT DE-EN | 29.47 | 29,50 | 80% |
29,24 | 85% | ||
28,81 | 90% |
Các mô hình sử dụng tập dữ liệu tiếng Đức và tiếng Anh WMT16 với news-test2013 làm bộ phát triển và news-test2015 làm bộ kiểm tra.
Mô hình phát hiện từ khóa
DS-CNN-L là một mô hình phát hiện từ khóa được tạo cho các thiết bị cạnh. Nó có thể được tìm thấy trong kho ví dụ của phần mềm ARM.
Người mẫu | Độ chính xác không thưa thớt | Độ chính xác thưa thớt có cấu trúc (2 x 4 mẫu) | Độ chính xác thưa thớt ngẫu nhiên (mục tiêu thưa thớt 50%) |
---|---|---|---|
DS-CNN-L | 95,23 | 94,33 | 94,84 |
Các ví dụ
Ngoài hướng dẫn Prune with Keras , hãy xem các ví dụ sau:
- Đào tạo mô hình CNN về nhiệm vụ phân loại chữ số viết tay MNIST với phương pháp cắt tỉa: mã
- Đào tạo một LSTM về nhiệm vụ phân loại tình cảm IMDB với mã cắt tỉa:
Để biết nền, hãy xem Cách cắt tỉa hoặc không cắt tỉa: khám phá hiệu quả của việc cắt tỉa để nén mô hình [ giấy ].