dòng chảy :: hoạt động :: QuantizeDownAndShrinkRange

#include <math_ops.h>

Chuyển đổi tensor 'đầu vào' được lượng tử hóa thành 'đầu ra' có độ chính xác thấp hơn, bằng cách sử dụng.

Tóm lược

phân phối thực tế của các giá trị để tối đa hóa việc sử dụng độ sâu bit thấp hơn và điều chỉnh phạm vi đầu ra tối thiểu và tối đa cho phù hợp.

[input_min, input_max] là các float vô hướng chỉ định phạm vi cho việc diễn giải float của dữ liệu 'đầu vào'. Ví dụ: nếu input_min là -1.0f và input_max là 1.0f, và chúng ta đang xử lý dữ liệu lượng tử hóa nhóm ngũ phân 16, thì giá trị 0 trong dữ liệu 16 bit sẽ được hiểu là -1.0f và 65535 có nghĩa là 1.0f.

Toán tử này cố gắng tăng độ chính xác nhiều nhất có thể vào đầu ra có độ sâu bit thấp hơn bằng cách tính toán các giá trị tối thiểu và tối đa thực tế được tìm thấy trong dữ liệu. Ví dụ: có thể giá trị nhập vào nhóm ngũ phân vị 16 không có giá trị nào thấp hơn 16.384 và không có giá trị nào cao hơn 49.152. Điều đó có nghĩa là chỉ cần một nửa phạm vi thực sự cần thiết, tất cả các diễn giải float nằm trong khoảng -0,5f đến 0,5f, vì vậy nếu chúng ta muốn nén dữ liệu thành đầu ra ngũ vị trí, chúng ta có thể sử dụng phạm vi đó thay vì lý thuyết -1,0f đến 1,0 f được gợi ý bởi đầu vào min và max.

Trong thực tế, điều này hữu ích nhất để lấy đầu ra từ các hoạt động như QuantizedMatMul có thể tạo ra đầu ra có độ sâu bit cao hơn đầu vào của chúng và có thể có phạm vi đầu ra tiềm năng lớn, nhưng trên thực tế có phân phối giá trị đầu vào chỉ sử dụng một phần nhỏ phạm vi có thể. Bằng cách cung cấp đầu ra đó vào toán tử này, chúng ta có thể giảm nó từ 32 bit xuống còn 8 với sự mất độ chính xác tối thiểu.

Tranh luận:

  • phạm vi: Một đối tượng Phạm vi
  • input_min: Giá trị float mà giá trị đầu vào được lượng tử hóa tối thiểu đại diện.
  • input_max: Giá trị float mà giá trị đầu vào được lượng tử hóa lớn nhất đại diện.
  • out_type: Loại đầu ra. Nên có độ sâu bit thấp hơn Tinput.

Lợi nhuận:

  • Output đầu ra
  • Output output_min: Giá trị float mà giá trị đầu ra lượng tử hóa tối thiểu đại diện.
  • Output output_max: Giá trị float mà giá trị đầu ra được lượng tử hóa lớn nhất đại diện.

Người xây dựng và Người phá hủy

QuantizeDownAndShrinkRange (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, DataType out_type)

Thuộc tính công cộng

operation
output
output_max
output_min

Thuộc tính công cộng

hoạt động

Operation operation

đầu ra

::tensorflow::Output output

output_max

::tensorflow::Output output_max

output_min

::tensorflow::Output output_min

Chức năng công cộng

QuantizeDownAndShrinkRange

 QuantizeDownAndShrinkRange(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max,
  DataType out_type
)