tensorflow :: ops :: QuantizeAndDequantizeV2
#include <array_ops.h>
Ardından bir tensörü nicelendirir.
Özet
Bu işlem, nicelleştirilmiş ileri geçişten kaynaklanan hassasiyet kaybını simüle eder:
- Çıkarımda kullanıldığında hedef niceleme yöntemiyle eşleşmesi gereken tensörün sabit nokta sayılarına nicelendirilmesi.
- Büyük olasılıkla matmul, sonraki operasyonlar için kayan nokta sayılarına geri döndürmek.
Nicelleştirmenin farklı yolları vardır. Bu sürüm yalnızca ölçeklendirme kullanır, bu nedenle 0.0, 0 ile eşleşir.
Nicelleştirilmiş çıktı türünde belirtilen 'sayı_bitleri'nden, minimum ve maksimum gösterilebilir nicelleştirilmiş değerleri belirler.
Örneğin
- [-128, 127] imzalı, num_bits = 8 veya
- [0, 255] işaretsiz için, num_bits = 8.
Range_given == False ise, ilk input_min, input_max giriş tensöründeki minimum ve maksimum değerler olarak otomatik olarak belirlenecektir, aksi takdirde belirtilen input_min, input_max değerleri kullanılır.
Not: Eğer input_min, input_max belirtilirse, tensördeki gerçek minimum ve maksimum değerlere eşit olmaları gerekmez. örneğin bazı durumlarda, bu değerleri, giriş dağılımının düşük olasılıklı uçlarının kırpılacağı şekilde belirtmek faydalı olabilir.
Bu işlem, başlangıçtaki [input_min, input_max] aralığını temsil edilebilir nicemlenmiş aralıkta bulunan bir aralıkla eşleştirecek maksimum scale_factor'ı belirler.
Ölçeği input_min ve input_max değerlerinden birinden belirler, ardından diğerini, sayılabilen aralığı maksimize etmek için günceller.
Örneğin
- çıkış işaretliyse, num_bits = 8, [input_min, input_max] = [-10.0, 5.0]: -128 / -10.0 = 12.8'lik bir scale_factor kullanır Bu durumda, input_max'ı 127 / 12.8 = olarak günceller 9.921875
- çıkış işaretliyse, num_bits = 8, [input_min, input_max] = [-10.0, 10.0]: 127 / 10.0 = 12.7 ölçek_faktörü kullanır Bu durumda, input_min'i 128.0 / 12.7 = -10.07874 olarak günceller
- çıktı işaretsiz ise, input_min 0 olmaya zorlanır ve sadece belirtilen input_max kullanılır.
Scale_factor'ı belirledikten ve giriş aralığını güncelledikten sonra, aşağıdakileri 'input' tensöründeki her bir değere uygular.
çıktı = yuvarlak (kelepçe (değer, giriş_min, giriş_maks.) * ölçek_faktörü) / ölçek_faktörü.
Yukarıdaki round işlevi, verilen round_mode'a göre değeri yuvarlar.
Argümanlar:
- kapsam: Bir Scope nesnesi
- input: Nicelemek ve sonra dequantize etmek için tensör .
- input_min:
range_given == True
, bu temsil edilmesi gereken minimum giriş değerini belirtir, aksi takdirdeinput
tensörünün minimum değerinden belirlenir. - input_max:
range_given == True
, bu temsil edilmesi gereken maksimum giriş değerini belirtir, aksi takdirdeinput
tensörünün maksimum değerinden belirlenir.
İsteğe bağlı özellikler (bkz. Attrs
):
- işaretli_ girdi: Nicemlemenin işaretli veya işaretsiz olup olmadığı. (aslında bu parametre
signed_output
olarak adlandırılmışsigned_output
) - num_bits: Nicemlemenin bit genişliği.
- aralık_ verilen: Aralığın verilip verilmeyeceği veya
input
tensöründen belirlenmesi gerekip gerekmediği. - round_mode: 'round_mode' özniteliği, float değerleri nicelleştirilmiş eşdeğerlerine yuvarlarken hangi yuvarlama bağ-kırma algoritmasının kullanılacağını denetler. Şu anda aşağıdaki yuvarlama modları desteklenmektedir:
- HALF_TO_EVEN: bu varsayılan round_mode'dur.
- HALF_UP: pozitife doğru yuvarlayın. Bu modda 7,5, 8'e, -7,5 ise -7'ye yuvarlanır.
- dar_aralık: True ise, nicelleştirilmiş minimum değerin mutlak değeri, 1 büyük yerine nicelenmiş maksimum değer ile aynıdır. yani 8 bit nicemleme için minimum değer -128 yerine -127'dir.
İadeler:
-
Output
: Çıkış tensörü.
Yapıcılar ve Yıkıcılar | |
---|---|
QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max) | |
QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs) |
Genel özellikler | |
---|---|
operation | |
output |
Kamusal işlevler | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Genel statik işlevler | |
---|---|
NarrowRange (bool x) | |
NumBits (int64 x) | |
RangeGiven (bool x) | |
RoundMode (StringPiece x) | |
SignedInput (bool x) |
Yapılar | |
---|---|
tensorflow :: ops :: QuantizeAndDequantizeV2 :: Attrs | QuantizeAndDequantizeV2 için isteğe bağlı öznitelik ayarlayıcıları. |
Genel özellikler
operasyon
Operation operation
çıktı
::tensorflow::Output output
Kamusal işlevler
QuantizeAndDequantizeV2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max )
QuantizeAndDequantizeV2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs )
düğüm
::tensorflow::Node * node() const
operator :: tensorflow :: Girdi
operator::tensorflow::Input() const
operator :: tensorflow :: Çıktı
operator::tensorflow::Output() const
Genel statik işlevler
NarrowRange
Attrs NarrowRange( bool x )
NumBits
Attrs NumBits( int64 x )
Aralık Verilen
Attrs RangeGiven( bool x )
RoundMode
Attrs RoundMode( StringPiece x )
SignedInput
Attrs SignedInput( bool x )