إجراء التواء كمي للموتر الكمي `lhs` والموتر الكمي `rhs`. لجعل "الإخراج" الكمي.
بالنظر إلى "lhs" و"rhs" الكمي، يتم تنفيذ نقطة كمية على "lhs" و"rhs" لإنتاج "إخراج" كمي.
يجب أن يكون `lhs` و`rhs` من نفس الرتبة، وأن يستوفيا شروط الشكل التالية. - `lhs_feature` % `feature_group_count` == 0 - `lhs_feature` % `rhs_input_feature` == 0 - `lhs_feature` / `feature_group_count` == `rhs_input_feature` - `rhs_output_feature` % `feature_group_count` == 0 - `lhs_batch` % `batch_group_count` == 0 - `rhs_output_feature` % `batch_group_count` == 0
يجب أن يتم تكميم `lhs` و`rhs` باستخدام Tensor، حيث يتم تكميم قيمة البيانات باستخدام الصيغة: يتم أيضًا تكميم
quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)
`الإخراج`، باستخدام نفس الصيغة. إذا تم تكميم "rhs" لكل موتر، فيجب أيضًا تكميم "الإخراج" لكل موتر. فئات متداخلة
فصل | الموحدةQuantizedConvolution.Options | السمات الاختيارية لـ UniformQuantizedConvolution |
الأساليب العامة
الإخراج <U> | كإخراج () إرجاع المقبض الرمزي للموتر. |
ثابت الموحدة QuantizedConvolution.Options | BatchGroupCount (BatchGroupCount طويلة) |
ثابت <U, T> UniQuantizedConvolution <U> | إنشاء (نطاق النطاق ، المعامل <T> lhs، المعامل <T> rhs، المعامل <Float> lhsScales، المعامل <Integer> lhsZeroPoints، المعامل <Float> rhsScales، المعامل <Integer> rhsZeroPoints، المعامل <Float> جداول الإخراج، المعامل <عدد صحيح > OutputZeroPoints، Class<U> Tout، حشوة السلسلة، Long lhsQuantizationMinVal، Long lhsQuantizationMaxVal، Long rhsQuantizationMinVal، Long rhsQuantizationMaxVal، Long OutputQuantizationMinVal، Long OutputQuantizationMaxVal، خيارات ... ) طريقة المصنع لإنشاء فئة تغلف عملية موحدة جديدة. |
ثابت الموحدة QuantizedConvolution.Options | DimensionNumbers (أرقام أبعاد السلسلة) |
ثابت الموحدة QuantizedConvolution.Options | حشوة صريحة (قائمة<طويلة> حشوة صريحة) |
ثابت الموحدة QuantizedConvolution.Options | featureGroupCount (featureGroupCount طويلة) |
ثابت الموحدة QuantizedConvolution.Options | lhsDilation (قائمة<Long> lhsDilation) |
ثابت الموحدة QuantizedConvolution.Options | lhsQuantizationAxis (lhsQuantizationAxis الطويل) |
الإخراج <U> | انتاج () الموتر الكمي الناتج لـ `Tout`، بنفس رتبة `lhs` و`rhs`. |
ثابت الموحدة QuantizedConvolution.Options | محور الكمي للإخراج (محور الكمي للإخراج الطويل) |
ثابت الموحدة QuantizedConvolution.Options | rhsDilation (قائمة<Long> rhsDilation) |
ثابت الموحدة QuantizedConvolution.Options | rhsQuantizationAxis (محور rhsQuantizationAxis الطويل) |
ثابت الموحدة QuantizedConvolution.Options | windowStrides (قائمة<Long> windowStrides) |
الطرق الموروثة
الأساليب العامة
الإخراج العام <U> كإخراج ()
إرجاع المقبض الرمزي للموتر.
المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.
ثابت عام الموحدة QuantizedConvolution.Options BatchGroupCount (BatchGroupCount طويلة)
حدود
BatchGroupCount | عدد المجموعات الدفعية. تستخدم للمرشحات المجمعة. يجب أن يكون مقسومًا على `output_feature`. |
---|
إنشاء الزي الرسمي الثابت العام <U> ( نطاق النطاق ، المعامل <T> lhs، المعامل <T> rhs، المعامل <Float> lhsScales، المعامل <Integer> lhsZeroPoints، المعامل <Float> rhsScales، المعامل <Integer> rhsZeroPoints، المعامل <Float > مقاييس الإخراج، المعامل <عدد صحيح> مخرجاتصفر نقاط، فئة <U> Tout، سلسلة الحشو، lhsQuantizationMinVal طويل، lhsQuantizationMaxVal طويل، طويل rhsQuantizationMinVal، طويل rhsQuantizationMaxVal، طويل OutputQuantizationMinVal، طويل OutputQuantizationMaxVal، خيارات ... )
طريقة المصنع لإنشاء فئة تغلف عملية موحدة جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
lhs | يجب أن يكون موترًا كميًا، الرتبة >= 3. |
rhs | يجب أن يكون موترًا كميًا، بنفس رتبة `lhs`. |
lhsScales | القيمة (القيم) العائمة المستخدمة كعوامل قياس عند تحديد كمية البيانات الأصلية التي يمثلها `lhs`. يجب أن يكون "موتر" عدديًا (يدعم "lhs" فقط تكميم كل موتر). |
lhsZeroPoints | قيمة (قيم) int32 المستخدمة كنقاط صفر عند قياس البيانات الأصلية التي يمثلها `lhs`. نفس حالة الشكل مثل `lhs_scales`. |
rhsScales | القيمة (القيم) العائمة المستخدمة كعوامل قياس عند تحديد كمية البيانات الأصلية التي يمثلها `rhs`. يجب أن يكون "موتر" عدديًا للتكميم لكل موتر، أو "موتر" أحادي الأبعاد بالحجم `rhs.dim_size(kernel_output_feature_dimension)` للتكميم لكل قناة. |
rhsZeroPoints | قيمة (قيم) int32 المستخدمة كنقاط صفر عند تحديد كمية البيانات الأصلية التي يمثلها `rhs`. نفس حالة الشكل مثل `rhs_scales`. |
importScales | القيمة (القيم) العائمة التي سيتم استخدامها كعوامل قياس عند تحديد كمية البيانات الأصلية التي يمثلها "المخرجات". يجب أن يكون "موتر" عدديًا للتكميم لكل موتر، أو "موتر" أحادي الأبعاد بحجم `rhs.dim_size(kernel_output_feature_dimension)` - وهو ما يساوي `output.dim_size(output_feature_dimension)`، للتكميم لكل قناة. إذا كان `rhs` مُكممًا لكل موتر، فيجب أيضًا أن يكون الناتج مُكممًا لكل موتر. هذا يعني أنه إذا كانت `rhs_scales` و`rhs_zero_points` عبارة عن موترات، فإن `output_scales` و`output_zero_points` يجب أن تكون عددية `Tensor` أيضًا. |
outputZeroPoints | قيمة (قيم) int32 المستخدمة كنقاط صفر عند قياس البيانات الأصلية التي يمثلها الإخراج. نفس حالة الشكل مثل `output_scales`. |
توت | نوع "الإخراج" "الموتر". |
حشوة | سلسلة من: `"SAME"` أو `"VALID"` أو `"EXPLICIT"`، تشير إلى نوع خوارزمية الحشو المطلوب استخدامها. |
lhsQuantizationMinVal | القيمة الدنيا للبيانات الكمية المخزنة في `lhs`. على سبيل المثال، إذا كان `Tin` هو `qint8`، فيجب ضبط هذا على -127 إذا كان النطاق الضيق مكمما أو -128 إذا لم يكن كذلك. |
lhsQuantizationMaxVal | القيمة القصوى للبيانات الكمية المخزنة في `lhs`. على سبيل المثال، إذا كان `Tin` هو `qint8`، فيجب ضبطه على 127. |
rhsQuantizationMinVal | القيمة الدنيا للبيانات الكمية المخزنة في `rhs`. على سبيل المثال، إذا كان `Tin` هو `qint8`، فيجب ضبط هذا على -127 إذا كان النطاق الضيق مكمما أو -128 إذا لم يكن كذلك. |
rhsQuantizationMaxVal | القيمة القصوى للبيانات الكمية المخزنة في `rhs`. على سبيل المثال، إذا كان `Tin` هو `qint8`، فيجب ضبطه على 127. |
OutputQuantizationMinVal | القيمة الدنيا للبيانات الكمية المخزنة في "المخرجات". على سبيل المثال، إذا كان `Tout` هو `qint8`، فيجب ضبط هذا على -127 إذا كان النطاق الضيق مكمما أو -128 إذا لم يكن كذلك. |
OutputQuantizationMaxVal | القيمة القصوى للبيانات الكمية المخزنة في "المخرجات". على سبيل المثال، إذا كان `Tout` هو `qint8`، فيجب ضبطه على 127. |
خيارات | يحمل قيم السمات الاختيارية |
عائدات
- مثيل جديد من UniQuantizedConvolution
ثابت عام موحد QuantizedConvolution.Options DimensionNumbers (سلسلة DimensionNumbers)
حدود
DimensionNumbers | هيكل معلومات البعد لعملية الالتواء. يجب أن تكون سلسلة فارغة (افتراضية) أو سلسلة متسلسلة من `tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr` proto. إذا كانت السلسلة فارغة، فالقيمة الافتراضية هي `("NCHW"، "OIHW"، "NCHW")` (للالتواء ثنائي الأبعاد). |
---|
ثابت عام الموحدةQuantizedConvolution.Options صريحة (قائمة<طويلة> صريحة)
حدود
this.expectPadding | إذا كانت `الحشوة` هي ``صريحة``، فيجب تعيينها كقائمة تشير إلى الحشوات الصريحة في بداية ونهاية كل بُعد مكاني `lhs`. خلاف ذلك، يجب أن يكون هذا فارغا. (إذا تم استخدامها،) يجب أن تكون قائمة بالحجم `2 * (عدد الأبعاد المكانية lhs)`، حيث تشير `(explicit_padding[2 * i]، plain_padding[2 * i + 1])` إلى `(start_padding، end_padding) `من `الأبعاد_المكانية[i]`. |
---|
ثابت عام موحد QuantizedConvolution.Options featureGroupCount (ميزة طويلةGroupCount)
حدود
featureGroupCount | عدد المجموعات المميزة تستخدم للتلافيف المجمعة. يجب أن يكون مقسومًا على كل من `lhs_feature` و`output_feature`. |
---|
ثابت عام موحد QuantizedConvolution.Options lhsDilation (قائمة<Long> lhsDilation)
حدود
lhsDilation | عامل التمدد المطلوب تطبيقه في كل بُعد مكاني لـ `lhs`. يجب أن تكون قائمة فارغة (افتراضية) أو قائمة بالحجم (عدد الأبعاد المكانية `lhs`). إذا كانت القائمة فارغة، فسيتم تعيين التمدد لكل بُعد مكاني `lhs` على 1. |
---|
ثابت عام موحد QuantizedConvolution.Options lhsQuantizationAxis (LhsQuantizationAxis طويل)
حدود
lhsQuantizationAxis | يشير إلى مؤشر البعد الخاص بالموتر حيث يتم تطبيق التكميم لكل محور على الشرائح الموجودة على طول هذا البعد. إذا تم التعيين على -1 (افتراضي)، فهذا يشير إلى تكميم كل موتر. بالنسبة إلى `lhs`، يتم دعم التكميم لكل موتر فقط. وبالتالي، يجب ضبط هذا على -1. ستؤدي القيم الأخرى إلى ظهور خطأ في إنشاء OpKernel. |
---|
ثابت عام موحد QuantizedConvolution.Options OutputQuantizationAxis (outputQuantizationAxis طويل)
حدود
OutputQuantizationAxis | يشير إلى مؤشر البعد الخاص بالموتر حيث يتم تطبيق التكميم لكل محور على الشرائح الموجودة على طول هذا البعد. إذا تم التعيين على -1 (افتراضي)، فهذا يشير إلى تكميم كل موتر. بالنسبة إلى "الإخراج"، لا يتم دعم سوى التكميم لكل موتر أو التكميم لكل قناة على طول "output_feature_dimension". وبالتالي، يجب ضبط هذا على -1 أو `dimension_numbers.output_feature_dimension`. ستؤدي القيم الأخرى إلى ظهور خطأ في إنشاء OpKernel. |
---|
ثابت عام موحد QuantizedConvolution.Options rhsDilation (قائمة<Long> rhsDilation)
حدود
rhsDation | عامل التمدد المطلوب تطبيقه في كل بُعد مكاني لـ "rhs". يجب أن تكون قائمة فارغة (افتراضية) أو قائمة بالحجم (عدد الأبعاد المكانية `rhs`). إذا كانت القائمة فارغة، فسيتم تعيين التمدد لكل بُعد مكاني "rhs" على 1. |
---|
ثابت عام موحد QuantizedConvolution.Options rhsQuantizationAxis (طويل rhsQuantizationAxis)
حدود
rhsQuantizationAxis | يشير إلى مؤشر البعد الخاص بالموتر حيث يتم تطبيق التكميم لكل محور على الشرائح الموجودة على طول هذا البعد. إذا تم التعيين على -1 (افتراضي)، فهذا يشير إلى تكميم كل موتر. بالنسبة إلى `rhs`، يتم دعم التكميم لكل موتر أو التكميم لكل قناة على طول kernel_output_feature_dimension. وبالتالي، يجب ضبط هذا على -1 أو `dimension_numbers.kernel_output_feature_dimension`. ستؤدي القيم الأخرى إلى ظهور خطأ في إنشاء OpKernel. |
---|
ثابت عام منتظم QuantizedConvolution.Options windowStrides (قائمة<Long> windowStrides)
حدود
windowStrides | خطوة النافذة المنزلقة لكل بعد مكاني لـ `lhs`. يجب أن تكون قائمة فارغة (افتراضية) أو قائمة الحجم (عدد الأبعاد المكانية). إذا تم توفير قائمة فارغة، فسيتم تعيين الخطوة لكل بُعد مكاني على 1. |
---|