圖像識別實戰(二)----讀取數據reader

圖像識別實戰(二)----讀取數據reader

從本地、網絡、分佈式文件系統HDFS等讀取文件,同時也可隨機生成數據,並返回一個或多個數據項。

reader的實質是一個迭代器(yield),每次返回一個數據

創建reader

reader = paddle.dataset.uci_housing.train()

但是很多數據集非常規範,即所有相同的標籤存在聚集效應,這就造成了,模型訓練某一個標籤的時候要不就全部訓練,要不就一點也訓練不了,

爲了解決這一問題就有了shuffle_reader()&batch_reader()

shuffle_reader

shuffle就是一個裝滿了reader的容器,裝了很多很多reader(buf_reader)個,shuffle的功能就是把他們的順序打亂

shuffle_reader,可以將reader中的數據放進去,同時返回reader,

shuffle_reader存在一個buf_size參數,int類型,配置buf_reader之後就可以每次讀取buf_reader個數據,之後將這buf_reader個數據打亂,隨機化。

每次讀取buf_size個數據,就完美的契合機器學習,每次選擇一定數量的訓練數據進行訓練。

shuffle_reader = paddle.reader.shuffle(reader ,buf_size = 100)

batch_size

每次讀取打亂過後的batch_size個數據進行訓練

batch_reader = paddle.batch(shuffle_reader,batch_size = 2)

高級用法:

三個函數組合起來

reader = paddle.batch(
    paddle.reader.shuffle(
        uci_housing.train(),
    buf_size = 100),
    batch_size=2) 

在這裏插入圖片描述

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