opは、入力テンソルで提供されるprotobufメッセージをシリアル化します。
`values`のテンソルのタイプは、` field_names`で指定されたフィールドのスキーマと一致する必要があります。 `values`のすべてのテンソルには、共通の形状接頭辞batch_shapeが必要です。
`sizes`テンソルは、各フィールドの繰り返し回数を指定します。 `values`の各テンソルの繰り返し回数(最後の次元)は、` sizes`の対応する繰り返し回数以上である必要があります。
フィールド名のコンテキストを与えるために、 `message_type`名を指定する必要があります。実際のメッセージ記述子は、リンクされた記述子プール、または `descriptor_source`属性を使用して呼び出し元から提供されたファイル名のいずれかで検索できます。
ほとんどの場合、ProtoフィールドタイプとTensorFlowdtypeの間のマッピングは簡単です。ただし、いくつかの特殊なケースがあります。
-サブメッセージまたはグループを含むプロトフィールドは、 `DT_STRING`(シリアル化されたサブメッセージ)にのみ変換できます。これは、APIの複雑さを軽減するためです。結果の文字列は、decode_protoopの別のインスタンスへの入力として使用できます。
-TensorFlowは符号なし整数のサポートを欠いています。 opsは、uint64タイプを同じ2の補数ビットパターンを持つ `DT_INT64`として表します(明白な方法)。符号なしint32値は、タイプ `DT_INT64`を指定するか、呼び出し元が` output_types`属性で `DT_INT32`を指定する場合は2の補数を使用して正確に表すことができます。
`descriptor_source`属性は、` message_type`を検索するときに参照するプロトコル記述子のソースを選択します。これは次のようになります。
-空の文字列または「local://」。この場合、プロトコル記述子は、バイナリにリンクされたC ++(Pythonではない)プロト定義用に作成されます。
-ファイル。この場合、プロトコル記述子はファイルから作成されます。このファイルには、文字列としてシリアル化された `FileDescriptorSet`が含まれている必要があります。注:プロトコルコンパイラ `protoc`の` --descriptor_set_out`および `--include_imports`オプションを使用して` descriptor_source`ファイルを作成できます。
-「バイト://
ネストされたクラス
クラス | EncodeProto.Options | EncodeProto オプションの属性 |
パブリックメソッド
出力<文字列> | asOutput () テンソルのシンボリックハンドルを返します。 |
出力<文字列> | バイト() 形状が `batch_shape`のシリアル化されたプロトのテンソル。 |
静的EncodeProto | |
静的EncodeProto.Options | 記述子ソース(文字列descriptorSource) |
継承されたメソッド
パブリックメソッド
public Output <String> asOutput ()
テンソルのシンボリックハンドルを返します。
TensorFlow操作への入力は、別のTensorFlow操作の出力です。このメソッドは、入力の計算を表すシンボリックハンドルを取得するために使用されます。
public static EncodeProto create (スコープスコープ、オペランド<整数>サイズ、反復可能<オペランド<?>>値、リスト<文字列>フィールド名、文字列メッセージタイプ、オプション...オプション)
新しいEncodeProto操作をラップするクラスを作成するファクトリメソッド。
パラメーター
範囲 | 現在のスコープ |
---|---|
サイズ | 形状が `[batch_shape、len(field_names)]`のint32のテンソル。 |
値 | 対応するフィールドの値を含むテンソルのリスト。 |
fieldNames | プロトフィールド名を含む文字列のリスト。 |
messageType | デコードするプロトメッセージタイプの名前。 |
オプション | オプションの属性値を運ぶ |
戻り値
- EncodeProtoの新しいインスタンス