DecodeProto

genel son sınıf DecodeProto

Operasyon, serileştirilmiş bir protokol tampon mesajındaki alanları tensörlere çıkarır.

Not: Bu API, insan dostu olmaktan ziyade dikeylik için tasarlanmıştır. Giriş protokollerini elle ayrıştırmak için kullanılabilir, ancak oluşturulan kodda kullanılmak üzere tasarlanmıştır.

'decode_proto' işlemi, serileştirilmiş bir protokol arabellek mesajından alanları tensörlere çıkarır. "Alan_adları"ndaki alanların kodu çözülür ve mümkünse karşılık gelen "çıkış_tipleri"ne dönüştürülür.

Alan adlarına bağlam kazandırmak için bir "mesaj_türü" adı sağlanmalıdır. Gerçek mesaj tanımlayıcısı, bağlı tanımlayıcı havuzunda veya arayan tarafından "tanımlayıcı_kaynak" özelliği kullanılarak sağlanan dosya adında aranabilir.

Her çıkış tensörü yoğun bir tensördür. Bu, giriş mini kümesinde görülen en fazla sayıda tekrarlanan öğeyi tutacak şekilde doldurulduğu anlamına gelir. (Sıfır boyutlu boyutları önlemek için şekil aynı zamanda birer adet dolguludur). Mini serideki her örnek için gerçek tekrar sayıları "boyutlar" çıktısında bulunabilir. Çoğu durumda, eğer eksik değerler sorun teşkil etmiyorsa, 'decode_proto' çıktısı hemen tf.squeeze'e beslenir. Tf.squeeze kullanırken sürprizlerden kaçınmak için daima sıkma boyutunu açıkça iletin.

Proto alan tipleri ile TensorFlow dtipleri arasındaki eşleme çoğunlukla basittir. Ancak birkaç özel durum vardır:

- Bir alt mesaj veya grup içeren bir protokol alanı yalnızca `DT_STRING`e (serileştirilmiş alt mesaj) dönüştürülebilir. Bunun amacı API'nin karmaşıklığını azaltmaktır. Ortaya çıkan dize, decode_proto işleminin başka bir örneğine girdi olarak kullanılabilir.

- TensorFlow imzasız tamsayılar için destekten yoksundur. Ops, uint64 türlerini aynı ikili tamamlayıcı bit düzenine sahip bir 'DT_INT64' olarak temsil eder (açık yol). İmzasız int32 değerleri tam olarak 'DT_INT64' tipi belirtilerek veya arayan kişinin 'output_types' özelliğinde 'DT_INT32' belirtmesi durumunda ikili tamamlayıcı kullanılarak temsil edilebilir.

- 'harita' alanlarının kodu doğrudan çözülmez. Uygun giriş tipinin 'tekrarlanan' alanları olarak değerlendirilirler. Proto-derleyici her harita alanı için giriş türlerini tanımlar. Tür adı, "Entry" eklenerek "CamelCase"e dönüştürülen alan adıdır. tf.train.Features.FeatureEntry mesajı bu örtülü 'Giriş' türlerinden birinin örneğidir.

- 'enum' alanları int32 olarak okunmalıdır.

Hem ikili hem de metin protokol serileştirmeleri desteklenir ve "format" özelliği kullanılarak seçilebilir.

"tanımlayıcı_kaynak" özelliği, "mesaj_türü" aranırken başvurulacak protokol tanımlayıcılarının kaynağını seçer. Bu olabilir:

- Boş bir dize veya "local://"; bu durumda, ikili dosyaya bağlı C++ (Python değil) protokol tanımları için protokol tanımlayıcıları oluşturulur.

- Bir dosya; bu durumda protokol tanımlayıcıları dosyadan oluşturulur ve bu dosyanın dize olarak serileştirilmiş bir 'FileDescriptorSet' içermesi beklenir. NOT: Protokol derleyicisi 'protoc' için '--descriptor_set_out' ve '--include_imports' seçeneklerini kullanarak bir 'descriptor_source' dosyası oluşturabilirsiniz.

- Bir "bayt:// ", protokol tanımlayıcılarının oluşturulduğu ` Dize olarak serileştirilmiş bir 'FileDescriptorSet' olması bekleniyor.

İç İçe Sınıflar

sınıf DecodeProto.Options DecodeProto için isteğe bağlı özellikler

Genel Yöntemler

statik Kod ÇözmeProto
create ( Kapsam kapsamı, İşlenen <Dize> bayt, String messageType, List<String> fieldNames, List<Class<?>> OutputTypes, Options... seçenekleri)
Yeni bir DecodeProto işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.
statik DecodeProto.Options
tanımlayıcıKaynak (Dize tanımlayıcıKaynak)
statik DecodeProto.Options
messageFormat (Dize messageFormat)
statik DecodeProto.Options
sterilize etmek (Boolean sterilize etmek)
Çıkış <Tamsayı>
boyutlar ()
'[batch_shape, len(field_names)]' şeklindeki int32 tensörü.
Liste< Çıkış <?>>
değerler ()
İlgili alan için değerleri içeren tensörlerin listesi.

Kalıtsal Yöntemler

Genel Yöntemler

public static DecodeProto create ( Kapsam kapsamı, Operand <String> bayt, String messageType, List<String> fieldNames, List<Class<?>> OutputTypes, Options... seçenekleri)

Yeni bir DecodeProto işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.

Parametreler
kapsam mevcut kapsam
bayt 'Batch_shape' şeklindeki serileştirilmiş protoların tensörü.
mesaj tipi Kodu çözülecek protokol mesaj türünün adı.
alanAdları Proto alan adlarını içeren dizelerin listesi. Bir uzantı alanının kodu, tam adı kullanılarak çözülebilir, örneğin EXT_PACKAGE.EXT_FIELD_NAME.
çıktı Türleri Alan_adları'ndaki ilgili alan için kullanılacak TF türlerinin listesi.
seçenekler isteğe bağlı nitelik değerlerini taşır
İadeler
  • DecodeProto'nun yeni bir örneği

public static DecodeProto.Options descriptorSource (Dize tanımlayıcıSource)

Parametreler
tanımlayıcıKaynak Ya 'local://' özel değeri ya da serileştirilmiş bir 'FileDescriptorSet' içeren dosyanın yolu.

public static DecodeProto.Options messageFormat (String messageFormat)

Parametreler
mesaj Formatı Ya 'ikili' ya da text .

public static DecodeProto.Options temizleme (Boolean temizleme)

Parametreler
sterilize etmek Sonucun sterilize edilip edilmeyeceği.

genel Çıkış <Tamsayı> boyutları ()

'[batch_shape, len(field_names)]' şeklindeki int32 tensörü. Her giriş, ilgili alan için bulunan değerlerin sayısıdır. İsteğe bağlı alanlar 0 veya 1 değerine sahip olabilir.

genel Liste< Çıkış <?>> değerler ()

İlgili alan için değerleri içeren tensörlerin listesi. "values[i]", "output_types[i]" veri türüne ve "[batch_shape, max(sizes[...,i])]" şekline sahip.