عملیات، پیام های پروتوباف ارائه شده در تانسورهای ورودی را سریال می کند.
انواع تانسورها در «مقدار» باید با طرح زمینههای مشخصشده در «نامهای_فیلد» مطابقت داشته باشند. همه تانسورهای "مقدار" باید یک پیشوند شکل مشترک داشته باشند، batch_shape .
تانسور «اندازهها» تعداد تکرار را برای هر فیلد مشخص میکند. تعداد تکرار (آخرین بعد) هر تانسور در "مقادیر" باید بزرگتر یا مساوی با تعداد تکرار مربوطه در "اندازه ها" باشد.
یک نام «نوع_پیام» باید ارائه شود تا زمینه نام فیلدها مشخص شود. توصیفگر پیام واقعی را می توان در مجموعه توصیفگر پیوند داده شده یا نام فایل ارائه شده توسط تماس گیرنده با استفاده از ویژگی 'descriptor_source' جستجو کرد.
در بیشتر موارد، نگاشت بین انواع فیلد Proto و dtypes TensorFlow ساده است. با این حال، چند مورد خاص وجود دارد:
- یک فیلد پروتو که حاوی یک پیام فرعی یا گروه است، فقط می تواند به «DT_STRING» (پیام فرعی سریالی) تبدیل شود. این برای کاهش پیچیدگی API است. رشته به دست آمده را می توان به عنوان ورودی برای نمونه دیگری از decode_proto op استفاده کرد.
- TensorFlow از اعداد صحیح بدون علامت پشتیبانی نمی کند. عملیات، انواع uint64 را به عنوان یک «DT_INT64» با همان الگوی بیت دو متمم (روش واضح) نشان می دهد. مقادیر بدون علامت int32 را میتوان دقیقاً با تعیین نوع «DT_INT64» یا با استفاده از مکمل twos نشان داد اگر تماسگیرنده «DT_INT32» را در ویژگی «output_types» مشخص کند.
ویژگی «descriptor_source» منبع توصیفگرهای پروتکل را انتخاب میکند تا هنگام جستجوی «نوع_پیام» با آنها مشورت شود. این ممکن است:
- یک رشته خالی یا "local://"، در این صورت توصیف کننده های پروتکل برای تعاریف پروتو C++ (نه Python) که به باینری پیوند داده شده اند ایجاد می شود.
- یک فایل، که در این صورت توصیفکنندههای پروتکل از فایل ایجاد میشوند که انتظار میرود حاوی یک «FileDescriptorSet» باشد که بهصورت رشتهای بهصورت سریالسازی شده است. توجه: میتوانید یک فایل «descriptor_source» با استفاده از گزینههای «--descriptor_set_out» و «--include_imports» در کامپایلر پروتکل «protoc» بسازید.
- یک "بایت: //
کلاس های تو در تو
کلاس | EncodeProto.Options | ویژگی های اختیاری برای EncodeProto |
روش های عمومی
خروجی <String> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
خروجی <String> | بایت () تانسور پروتوهای سریالی با شکل «بچ_شکل». |
استاتیک EncodeProto | ایجاد (حوزه دامنه ، اندازه های عملوند <عدد صحیح، مقادیر تکرارپذیر< عملوند <?>>، لیست<رشته> نام های فیلد، نوع پیام رشته، گزینه ها... گزینه ها) روش کارخانه برای ایجاد کلاسی که عملیات جدید EncodeProto را بسته بندی می کند. |
استاتیک EncodeProto.Options | descriptorSource (String descriptorSource) |
روش های ارثی
روش های عمومی
خروجی عمومی <String> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
ایجاد EncodeProto ایستا عمومی (حوزه دامنه ، اندازه های عملوند <صحیح>، مقادیر تکرارپذیر< عملوند <?>>، فهرست <رشته> نام های فیلد، نوع پیام رشته، گزینه ها... گزینه ها)
روش کارخانه برای ایجاد کلاسی که عملیات جدید EncodeProto را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
اندازه ها | تانسور int32 با شکل «[batch_shape, len(field_names)]». |
ارزش های | فهرست تانسورهای حاوی مقادیر برای فیلد مربوطه. |
نام فیلدها | فهرست رشته های حاوی نام فیلدهای پروتو. |
نوع پیام | نام نوع پیام اولیه برای رمزگشایی. |
گزینه ها | مقادیر ویژگی های اختیاری را حمل می کند |
برمی گرداند
- یک نمونه جدید از EncodeProto