إجراء التواء كمي للموتر الكمي `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)
فئات متداخلة
فصل | الموحدة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 > OutputScales، Operand <Integer>outputZeroPoints، Class<U> Tout، سلسلة الحشو، Long lhsQuantizationMinVal، Long lhsQuantizationMaxVal، Long rhsQuantizationMinVal، Long rhsQuantizationMaxVal، Long OutputQuantizationMinVal، Long 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_zero_points` يجب أن تكون `موترات' أيضًا. |
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. |
خيارات | يحمل قيم السمات الاختيارية |
المرتجعات
- مثيل جديد من الموحدةQuantizedConvolution
ثابت عام موحد QuantizedConvolution.Options DimensionNumbers (سلسلة DimensionNumbers)
حدود
DimensionNumbers | هيكل معلومات البعد لعملية الالتواء. يجب أن تكون سلسلة فارغة (افتراضية) أو سلسلة متسلسلة من `tensorflow.UniformQuantizedConvolutionDimensionNumbersAttr` proto. إذا كانت السلسلة فارغة، فالقيمة الافتراضية هي `("NCHW"، "OIHW"، "NCHW")` (للالتواء ثنائي الأبعاد). |
---|
ثابت عام الموحدةQuantizedConvolution.Options صريحة (قائمة<طويلة> صريحة)
حدود
this.expectPadding | إذا كانت `الحشوة` هي `"صريحة"`، فيجب تعيينها كقائمة تشير إلى الحشوات الصريحة في بداية ونهاية كل بُعد مكاني `lhs`. خلاف ذلك، يجب أن يكون هذا فارغا. (إذا تم استخدامها،) يجب أن تكون قائمة بالحجم `2 * (عدد الأبعاد المكانية)`، حيث تشير `(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. |
---|