TensorFlow函數(shù)教程:tf.io.parse_sequence_example

2019-02-21 16:21 更新

tf.io.parse_sequence_example函數(shù)

tf.io.parse_sequence_example(
    serialized,
    context_features=None,
    sequence_features=None,
    example_names=None,
    name=None
)

定義在:tensorflow/python/ops/parsing_ops.py。

解析一批SequenceExample原型。

解析serialized中給出的序列化SequenceExample原型向量 。

此操作將序列化序列示例解析為分別將鍵映射到Tensor和SparseTensor對(duì)象的字典元組。第一個(gè)字典包含出現(xiàn)在context_features中的鍵的映射,第二個(gè)字典包含出現(xiàn)在sequence_features中的鍵的映射。

必須提供context_features和sequence_features中的至少一個(gè)且非空。

這些context_features鍵與SequenceExample作為一個(gè)整體相關(guān)聯(lián),與時(shí)間/幀無關(guān)。相反,sequence_features鍵提供了一種在SequenceExample原型的FeatureList部分中訪問可變長(zhǎng)度數(shù)據(jù)的方法。雖然context_features值的shape相對(duì)于幀是固定的,但是sequence_features值的幀維度(第一維)可以在SequenceExample原型之間變化,甚至可以在同一SequenceExample內(nèi)的feature_list鍵之間變化。

context_features包含VarLenFeature和FixedLenFeature對(duì)象。每個(gè)VarLenFeature都映射到一個(gè)SparseTensor,并且每個(gè)FixedLenFeature都映射到Tensor,其具有指定類型,shape和默認(rèn)值。

sequence_features包含VarLenFeature和FixedLenSequenceFeature對(duì)象。每個(gè)VarLenFeature都映射到一個(gè)SparseTensor,并且每個(gè)FixedLenSequenceFeature映射到Tensor,每個(gè)都有指定的類型。FixedLenSequenceFeature df的shape將是(B,T,) + df.dense_shape,其中B是批處理大小,T是SequenceExample中關(guān)聯(lián)FeatureList的長(zhǎng)度。例如,F(xiàn)ixedLenSequenceFeature([])產(chǎn)生靜態(tài)shape [None, None]和動(dòng)態(tài)shape [B, T]的標(biāo)量2-D Tensor,而FixedLenSequenceFeature([k])(對(duì)于 int k >= 1)產(chǎn)生靜態(tài)shape [None, None, k]和動(dòng)態(tài)shape [B, T, k]的3-D矩陣Tensor。

與輸入一樣,生成的輸出張量具有批處理維度。這意味著VarLenFeatures和FixedLenSequenceFeatures的原始每個(gè)示例shape可能會(huì)丟失。為了處理這種情況,該操作還提供了shape張量的dict作為輸出的一部分。上下文功能有一個(gè)dict,feature_list功能也有一個(gè)dict。類型FixedLenFeatures的上下文功能將不存在,因?yàn)檎{(diào)用者已經(jīng)知道它們的shape。如果輸入的“fixedLenFeature”在示例中的長(zhǎng)度不同,較短的示例將使用默認(rèn)數(shù)據(jù)類型值填充:0表示數(shù)字類型,空字符串表示字符串類型。

每個(gè)SparseTensor對(duì)應(yīng)的sequence_features代表一個(gè)參差不齊的矢量。它的索引是[time, index],其中time是FeatureList條目,index是與該時(shí)間關(guān)聯(lián)的值列表中的值索引。

帶有default_value的FixedLenFeature和帶有allow_missing=True的FixedLenSequenceFeature條目是可選的;否則,如果serialized中的任何示例中缺少Feature或FeatureList,我們將失敗。

example_name可能包含相應(yīng)序列化原型的描述性名稱。這可能對(duì)調(diào)試有用,但它對(duì)輸出沒有影響。如果不是None,則example_name必須是標(biāo)量。

參數(shù):

  • serialized:包含二進(jìn)制序列化SequenceExample原型的字符串類型的向量(1-D Tensor)。
  • context_features:dict映射功能鍵到FixedLenFeature或VarLenFeature值。這些功能與SequenceExample作為一個(gè)整體相關(guān)聯(lián)。
  • sequence_features:dict映射功能鍵到FixedLenSequenceFeature或VarLenFeature值。這些功能與SequenceExample原型的FeatureList部分中的數(shù)據(jù)相關(guān)聯(lián)。
  • example_names:字符串的向量(1-D Tensor)(可選),序列化原型的名稱。
  • name:此操作的名稱(可選)。

返回:

三個(gè)dicts的元組,每個(gè)dicts映射鍵到Tensors和SparseTensors。 第一個(gè)dict包含上下文鍵/值,第二個(gè)dict包含feature_list鍵/值,最后一個(gè)dict包含任何密集feature_list功能的長(zhǎng)度。

可能引發(fā)的異常:

  • ValueError:如果任何功能無效。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)