DecodeProto

الفئة النهائية العامة DecodeProto

يقوم المرجع باستخراج الحقول من رسالة مؤقتة للبروتوكول المتسلسل إلى موتر.

ملاحظة: تم تصميم واجهة برمجة التطبيقات هذه من أجل التعامد بدلاً من ملاءمة الإنسان. يمكن استخدامه لتحليل نماذج الإدخال يدويًا، ولكنه مخصص للاستخدام في التعليمات البرمجية التي تم إنشاؤها.

تقوم عملية `decode_proto` باستخراج الحقول من بروتوكول متسلسل يقوم بتخزين الرسالة مؤقتًا في موترات. يتم فك تشفير الحقول الموجودة في "أسماء_الحقول" وتحويلها إلى "أنواع_المخرجات" المقابلة إن أمكن.

يجب توفير اسم "نوع_الرسالة" لتوفير سياق لأسماء الحقول. يمكن البحث عن واصف الرسالة الفعلي إما في تجمع الواصفات المرتبطة أو في اسم الملف الذي يوفره المتصل باستخدام السمة "descriptor_source".

كل موتر إخراج هو موتر كثيف. وهذا يعني أنها مبطنة لاستيعاب أكبر عدد من العناصر المتكررة التي تظهر في الدفعة الصغيرة للإدخال. (الشكل مبطن أيضًا بواحد لمنع الأبعاد ذات الحجم الصفري). يمكن العثور على أعداد التكرار الفعلية لكل مثال في الدفعة الصغيرة في مخرجات "الأحجام". في كثير من الحالات، يتم تغذية مخرجات `decode_proto` على الفور إلى tf.squeeze إذا لم تكن القيم المفقودة مثيرة للقلق. عند استخدام tf.squeeze، قم دائمًا بتمرير بُعد الضغط بشكل صريح لتجنب المفاجآت.

بالنسبة للجزء الأكبر، يكون التعيين بين أنواع حقول Proto وأنواع TensorFlow واضحًا ومباشرًا. ومع ذلك، هناك بعض الحالات الخاصة:

- لا يمكن تحويل الحقل الأولي الذي يحتوي على رسالة فرعية أو مجموعة إلا إلى `DT_STRING` (الرسالة الفرعية المتسلسلة). وذلك لتقليل تعقيد واجهة برمجة التطبيقات (API). يمكن استخدام السلسلة الناتجة كمدخل لمثيل آخر من عملية decode_proto.

- يفتقر TensorFlow إلى دعم الأعداد الصحيحة غير الموقعة. تمثل العمليات أنواع uint64 على أنها `DT_INT64` بنفس نمط البتات الثنائية المكملة (الطريقة الواضحة). يمكن تمثيل قيم int32 غير الموقعة تمامًا عن طريق تحديد النوع `DT_INT64`، أو استخدام المكمل الثنائي إذا حدد المتصل `DT_INT32` في السمة `output_types`.

- لم يتم فك تشفير حقول "الخريطة" مباشرة. ويتم التعامل معها على أنها حقول "متكررة"، من نوع الإدخال المناسب. يحدد المترجم الأولي أنواع الإدخال لكل حقل خريطة. اسم النوع هو اسم الحقل، الذي تم تحويله إلى "CamelCase" مع إلحاق "الإدخال". تعتبر رسالة tf.train.Features.FeatureEntry مثالاً على أحد أنواع "الإدخال" الضمنية هذه.

- يجب قراءة حقول `enum` كـ int32.

يتم دعم كل من التسلسلات الثنائية والنصية الأولية، ويمكن اختيارها باستخدام السمة "format".

تحدد السمة `descriptor_source` مصدر واصفات البروتوكول للرجوع إليها عند البحث عن `message_type`. هذا قد يكون:

- سلسلة فارغة أو "://local://"، وفي هذه الحالة يتم إنشاء واصفات البروتوكول لتعريفات بروتوكول C++ (وليس Python) المرتبطة بالثنائي.

- ملف، وفي هذه الحالة يتم إنشاء واصفات البروتوكول من الملف، والذي من المتوقع أن يحتوي على `FileDescriptorSet` المتسلسل كسلسلة. ملاحظة: يمكنك إنشاء ملف `descriptor_source` باستخدام خيارات `--descriptor_set_out` و`--include_imports` لمترجم البروتوكول `protoc`.

- "بايت: // "، حيث يتم إنشاء واصفات البروتوكول من ` `، والذي من المتوقع أن يكون `FileDescriptorSet` متسلسل كسلسلة.

فئات متداخلة

فصل DecodeProto.Options سمات اختيارية لـ DecodeProto

الأساليب العامة

ثابت فك التشفير
إنشاء (نطاق النطاق ، المعامل <String> بايت، String messageType، List<String> fieldNames، List<Class<?>> OutputTypes، Options... options)
طريقة المصنع لإنشاء فئة تغلف عملية DecodeProto جديدة.
ثابت DecodeProto.Options
واصف المصدر (سلسلة واصف المصدر)
ثابت DecodeProto.Options
تنسيق الرسالة (تنسيق رسالة السلسلة)
ثابت DecodeProto.Options
تعقيم (تعقيم منطقي)
الإخراج <عدد صحيح>
الأحجام ()
موتر int32 بالشكل `[batch_shape, len(field_names)]`.
قائمة< الإخراج <?>>
قيم ()
قائمة الموترات التي تحتوي على قيم للحقل المقابل.

الطرق الموروثة

الأساليب العامة

إنشاء DecodeProto ثابت عام ( نطاق النطاق، المعامل <String> بايت، String messageType، List<String> fieldNames، List<Class<?>> OutputTypes، Options... options)

طريقة المصنع لإنشاء فئة تغلف عملية DecodeProto جديدة.

حدود
نِطَاق النطاق الحالي
بايت موتر من النماذج الأولية المتسلسلة ذات الشكل "batch_shape".
نوع الرسالة اسم نوع الرسالة الأولية المراد فك تشفيرها.
أسماء الحقول قائمة السلاسل التي تحتوي على أسماء الحقول الأولية. يمكن فك تشفير حقل الامتداد باستخدام اسمه الكامل، على سبيل المثال، EXT_PACKAGE.EXT_FIELD_NAME.
أنواع الإخراج قائمة بأنواع TF التي سيتم استخدامها للحقل المعني في field_names.
خيارات يحمل قيم السمات الاختيارية
عائدات
  • مثيل جديد من DecodeProto

DecodeProto.Options decodeProto العام الثابت (مصدر واصف السلسلة)

حدود
descriptorSource إما القيمة الخاصة "local://" أو مسار إلى ملف يحتوي على "FileDescriptorSet" المتسلسل.

DecodeProto.Options العام الثابت messageFormat (String messageFormat)

حدود
messageFormat إما "ثنائي" أو text .

تعقيم DecodeProto.Options الثابت العام (تعقيم منطقي)

حدود
عقم سواء لتعقيم النتيجة أم لا.

أحجام الإخراج العام < عدد صحيح> ()

موتر int32 بالشكل `[batch_shape, len(field_names)]`. كل إدخال هو عدد القيم الموجودة للحقل المقابل. قد تحتوي الحقول الاختيارية على قيم 0 أو 1.

القائمة العامة < الإخراج <?>> القيم ()

قائمة الموترات التي تحتوي على قيم للحقل المقابل. تحتوي `values[i]` على نوع بيانات `output_types[i]` وشكل `[batch_shape, max(sizes[...,i])]`.