عملیات، پیام های پروتوباف ارائه شده در تانسورهای ورودی را سریال می کند.
انواع تانسورها در "مقدار" باید با طرح زمینه های مشخص شده در "فیلد_نام ها" مطابقت داشته باشند. همه تانسورها در `values` باید یک پیشوند شکل معمولی و 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 |
روش های عمومی
خروجی <رشته> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
خروجی <رشته> | بایت () تانسور پروتوهای سریالی با شکل «بچ_شکل». |
شخص EncodeProto | ایجاد ( محدوده دامنه، عملوند <صحیح> اندازه، Iterable < عملوند <>> ارزش ها؟، فهرست <رشته> نام فیلدها، رشته messageType، گزینه ها ... گزینه ها) روش کارخانه برای ایجاد کلاسی که یک عملیات EncodeProto جدید را بسته بندی می کند. |
شخص EncodeProto.Options | descriptorSource (رشته descriptorSource) |
روش های ارثی
روش های عمومی
عمومی خروجی <رشته> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
عمومی استاتیک EncodeProto ایجاد ( محدوده دامنه، عملوند <صحیح> اندازه، Iterable < عملوند >> ارزش <؟، فهرست <رشته> نام فیلدها، رشته messageType، گزینه ها ... گزینه ها)
روش کارخانه برای ایجاد کلاسی که یک عملیات EncodeProto جدید را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
اندازه ها | تانسور int32 با شکل «[batch_shape, len(field_names)]». |
ارزش های | فهرست تانسورهای حاوی مقادیر برای فیلد مربوطه. |
نام فیلدها | لیست رشته های حاوی نام فیلدهای پروتو. |
نوع پیام | نام نوع پیام اولیه برای رمزگشایی. |
گزینه ها | مقادیر ویژگی های اختیاری را حمل می کند |
برمی گرداند
- یک نمونه جدید از EncodeProto