TensorFlow-Slim Data的解讀

        TensorFlow-Slim 提供了爲從各種格式中加載數據的庫,如:TFRecords Text等。在讀取tensorlow tfrecord文件時,可以使用tensorflow直接讀取,另外一種方法即使用slim中高級封裝讀取。

加載數據任務主要完成兩個過程:

     1.說明數據怎麼表述,這樣它能夠被讀取以及可以被解釋

     2.說明怎麼爲使用者提供數據。我們應該說明數據怎麼提供以及怎麼存儲在內存中。如當數據被多個程序共享,數據是否需要被並行或者串行讀入,數據是否需要被打亂。

在TF-slim中數據集的定義:一系列代表有限樣本的集合,樣本可以是文本文件或者高級編碼的文件,或者單個項目多個項目如:圖片,類標籤,場景標籤。簡單來說 TF-Slim'dataset 就是一個元組包含如下說明數據的成員:

1.data_sources:A list of file paths that together make up the dataset

2.reader; A TensorFlow Reader appropiate for the file type in data_sources

3.decoder:A TF-Slim data_decoder class whic is used to decode the content of the read dataset files

4.num_samples:The number of samples in the dataset

5. items_to_descriptions:A map from the items provided by the dataset to decriptions of each

總而言之讀取數據的過程包括:使用指定的數據讀取器打開數據源文件,解碼文件使用給定的解碼器,使用者獲取需要的成員

Dataset爲一個類,包括如下幾個成員:

    1.數據源列表

    2.閱讀器。閱讀器能讀取數據源,並且能儘量換回被編碼的數據

    3.解碼器。解碼器用來解碼閱讀器返回的每一個樣例。

    4.樣例總數量。

    5.可選字典。該字典映射返回項目的列表和這些項目的描述。

數據可以通過slim中的dataset_data_provider從dataset中讀取。如下所示:

dataset = CreateMyDataset(...)

provider = dataset_data_provider.DatasetDataProvider(dataset, shuffle=False)
image, label = provider.get(['image', 'label'])

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章