Trang này được dịch bởi Cloud Translation API.
Switch to English

Quantization đào tạo ý thức

Duy trì bởi TensorFlow Mẫu Tối ưu hóa

Có hai hình thức của lượng tử: sau đào tạo lượng tử và lượng tử hóa đào tạo nhận thức được. Bắt đầu với lượng tử sau đào tạo vì nó dễ dàng hơn để sử dụng, mặc dù lượng tử đào tạo ý thức thường tốt hơn là cho chính xác mô hình.

Trang này cung cấp một cái nhìn tổng quan về đào tạo nhận thức được lượng tử hóa để giúp bạn xác định nó như thế nào phù hợp với trường hợp sử dụng của bạn.

Tổng quat

Quantization đào tạo nhận thức được mô phỏng suy luận thời gian lượng tử hóa, tạo ra một mô hình mà các công cụ hạ lưu sẽ sử dụng để tạo ra mô hình thực sự lượng tử hóa. Các mô hình lượng tử sử dụng có độ chính xác thấp hơn (ví dụ như 8-bit thay vì 32-bit float), dẫn đến lợi ích trong quá trình triển khai.

Triển khai với lượng tử

Lượng tử mang lại những cải tiến thông qua nén mô hình và giảm độ trễ. Với giá trị mặc định API, co lại mô hình kích thước bằng 4x, và chúng tôi thường thấy giữa 1,5 - 4x cải tiến trong CPU độ trễ trong backends thử nghiệm. Cuối cùng, cải thiện độ trễ có thể được nhìn thấy trên các máy gia tốc học máy tương thích, chẳng hạn như EdgeTPU và NNAPI.

Kỹ thuật này được sử dụng trong sản xuất trong bài phát biểu, tầm nhìn, văn bản và dịch vụ sử dụng. Mã này hiện hỗ trợ một tập hợp con của các mô hình này .

Thử nghiệm với lượng tử và phần cứng liên quan

Người dùng có thể cấu hình các thông số lượng tử hóa (ví dụ số bit) và ở một mức độ, các thuật toán cơ bản. Với những thay đổi từ giá trị mặc định API, không có hỗ trợ đường dẫn đến triển khai.

API cụ thể để cấu hình này là thực nghiệm và không phụ thuộc vào khả năng tương thích ngược.

khả năng tương thích API

Người dùng có thể áp dụng lượng tử hóa với các API sau:

  • Xây dựng mô hình: tf.keras với chỉ tuần tự và các mô hình chức năng.
  • phiên bản TensorFlow: TF 2.x dành cho tf-đêm.
    • tf.compat.v1 với một gói TF 2.X không được hỗ trợ.
  • thực hiện chế độ TensorFlow: thực hiện háo hức

Nó nằm trên lộ trình của chúng tôi để hỗ trợ thêm trong các lĩnh vực sau:

  • xây dựng mô hình: làm rõ thế nào Models subclassed đã hạn chế hoặc không có hỗ trợ
  • Đào tạo phân phối: tf.distribute

ma trận hỗ trợ chung

Hỗ trợ có sẵn trong các lĩnh vực sau:

  • Bảo hiểm mô hình: mô hình sử dụng lớp trong danh sách trắng , BatchNormalization khi nó theo sau Conv2D và DepthwiseConv2D lớp, và trong trường hợp hạn chế, Concat .
  • Tăng tốc phần cứng: defaults API của chúng tôi phù hợp với khả năng tăng tốc trên EdgeTPU, NNAPI, và backends TFLite, trong số những người khác. Xem caveat trong lộ trình.
  • Triển khai với lượng tử: chỉ mỗi trục lượng tử cho các lớp xoắn, không mỗi tensor lượng tử, hiện đang được hỗ trợ.

Nó nằm trên lộ trình của chúng tôi để hỗ trợ thêm trong các lĩnh vực sau:

  • bảo hiểm mô hình: mở rộng để bao gồm RNN / LSTMs và hỗ trợ concat chung.
  • Tăng tốc phần cứng: đảm bảo sự chuyển đổi TFLite có thể sản xuất mô hình đầy đủ số nguyên. Xem vấn đề này để biết chi tiết.
  • Thử nghiệm với trường hợp sử dụng lượng tử:
    • Thử nghiệm với các thuật toán lượng tử mà lớp tuổi Keras hoặc yêu cầu bước đào tạo.
    • Ổn định API.

Các kết quả

phân loại hình ảnh với các công cụ

Mô hình Phi lượng tử hóa Top-1 Độ chính xác 8-bit lượng tử chính xác
MobilenetV1 224 71.03% 71,06%
Resnet v1 50 76,3% 76,1%
MobilenetV2 224 70,77% 70,01%

Các mô hình đã được thử nghiệm trên Imagenet và đánh giá trong cả TensorFlow và TFLite.

phân loại hình ảnh cho kỹ thuật

Mô hình Phi lượng tử hóa Top-1 Độ chính xác 8-Bit lượng tử chính xác
Nasnet-Mobile 74% 73%
Resnet-v2 50 75,6% 75%

Các mô hình đã được thử nghiệm trên Imagenet và đánh giá trong cả TensorFlow và TFLite.

Các ví dụ

Ngoài các ví dụ lượng tử đào tạo ý thức , xem các ví dụ sau:

  • CNN mô hình trên tay nhiệm vụ phân loại chữ số MNIST với lượng tử: đang

Đối với nền tảng về một cái gì đó tương tự, xem Quantization và Đào tạo Neural Networks cho Integer-Arithmetic-Only suy luận hiệu quả giấy . Bài viết này giới thiệu một số khái niệm rằng công cụ này sử dụng. Việc thực hiện không phải là giống hệt nhau, và có những khái niệm khác được sử dụng trong công cụ này (ví dụ mỗi trục quantization).