dòng chảy căng:: ôi:: Lượng tử hóaDownAndShrinkRange

#include <math_ops.h>

Chuyển đổi tenxơ 'đầ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.

Bản tóm tắt

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 tối thiểu và tối đa đầu ra tương ứng.

[input_min, input_max] là các số float vô hướng chỉ định phạm vi để 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 quint16, 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 thu được độ chính xác cao 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ể đầu vào quint16 đó 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à thực tế chỉ cần một nửa phạm vi, tất cả các cách diễn giải float nằm trong khoảng từ -0,5f đến 0,5f, vì vậy nếu chúng ta muốn nén dữ liệu thành đầu ra quint8, chúng ta có thể sử dụng phạm vi đó thay vì -1,0f đến 1,0 theo lý thuyết f được đề xuất bởi đầu vào tối thiểu và tối đa.

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ó sự phân bổ các giá trị đầu vào chỉ sử dụng một phần nhỏ của phạm vi có thể. Bằng cách đưa đầ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 độ chính xác bị mất ở mức tối thiểu.

Lập luận:

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

Trả về:

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

Hàm tạo và hàm 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 khai

operation
output
output_max
output_min

Thuộc tính công khai

hoạt động

Operation operation

đầu ra

::tensorflow::Output output

đầu ra_max

::tensorflow::Output output_max

đầu ra_min

::tensorflow::Output output_min

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

Lượng tử hóaDownAndShrinkRange

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