paddlepaddle百度飛槳學習心得

2021-10-23 23:18:34 字數 1185 閱讀 9651

還有詳細的安裝模組講解,簡單案例,經典案例,高階內容等等

然後是專案裡自己最近嘗試修改過的部分

1.資料打亂

老師提供的案例是先得到訓練集資料的索引,然後將索引打亂,從而達到打亂訓練集資料的目的。打亂訓練集資料的原因是:網路對最近得到的資料的印象較深,除非特殊任務本身對日期等有限制,都會事先打亂訓練集,增加資料的隨機性,使網路訓練效果更好(泛化能力,不打亂,如果最後的乙個batch裡的資料有較相似的特徵,網路可能比較偏)

此處是通過索引來亂序的**:

事先得到資料集train_set,包含和標籤:

imgs, labels = train_set[0], train_set[1]

#獲得資料集長度

imgs_length = len(imgs)

#定義資料集每個資料的序號,根據序號讀取資料

index_list = list(range(imgs_length))

#讀入資料時用到的批次大小

batchsize = 100

#隨機打亂訓練資料的索引序號

random.shuffle(index_list)

或者可以直接用shuffle打亂資料:

np.random.shuffle(training_data)
我當時交作業好像用了其他的,找不到這兩種方法寫哪個課件裡了

作業是這樣寫的:

#亂序

train_reader = fluid.io.shuffle(train_reader, 8)

train_reader是讀取的訓練資料集,buffer_size為8,用的是飛槳的api

2.資料歸一化問題

一開始的案例是房價**,用的是全連線層來解決,其中乙個步驟是,將輸入資料歸一化,(大概)是有平移偏移的0-1分布,然後我總記得有個啟用函式來著,裡面有乙個sigmoid,就一直以為啟用函式不僅是有非線性功能,還提供網路某一層輸出的歸一化的作用

所以當時聽課的時候對於「只有對輸入資料進行歸一化」,有一點疑惑,

後來想想relu並不是只介於0-1的,所以啟用函式主要還是提供非線性功能吧,不知道網路具體怎麼計算,才能得出,全連線層之後不需要跟乙個歸一化的過程的,

現在想一想,我當時疑惑的應該是輸入歸一化,網路輸出後跟標籤做計算,loss會不會太大

先寫兩點吧~

百度深度框架PaddlePaddle小結

1.就我而言,tensorflow有過一定基礎,也跑過一些網路,但paddlepaddle相對於tensorflow還是方便很多,覺得應該是得益於封裝的比較完美 聽說pytorch也是這樣,暫時還沒了解 2.paddle 底層是c 的,第一次用到動態圖模式,還是比較感興趣,在七日訓練營裡的 裡,有很...

百度發布PaddlePaddle新API

發布paddlepaddle新api,昨日,宣布已完成paddlepaddle 新 api 的內測版本。paddlepaddle 是研發的深度學習開源平台,於去年 9 月對公眾開放,稱得上是國內機器學習開源專案的領軍者。獲悉,該新 api 介面大幅精簡了 paddlepaddle 的 量。下面官方公...

百度訓練營 paddlepaddle學習筆記

整個內容對我本人來說有一定的難度,好在老師很負責,講解的很到位,群裡有很多高手,也很樂於分享,總之,是個很有挑戰性,也愉快的過程,所以,我把每一天的學習內容都簡要記錄在部落格中了day1,day2 這裡主要展示一下學習成果 首先抓取了1000來張 青春有你2 選手的 使用resnet50網路進行影象...