- Keras中有一個層是Flatten層,這個層可以把二維的圖片轉換成一維的數據,因此不需要單獨做處理,而是在做完各種數據預處理后,用這個平層,把二維的數據處理成一維。
- Keras模型中有對數據進行分類,首先不是一定需要把所有的圖片都處理成正方形,長方形的圖片一樣可以進行各種處理,另外,壓縮成小的圖片是為了處理量小,快速方便,而不是因為一定要這么做,如果資源夠的話,那么就用原圖也可以。
- 神經網絡層的輸入必須是numpy數組,或者numpy數組組成的數組。只有這個格式的數據才可以輸入模型訓練,另外,輸入的X的矩陣中,各個維度的長度必須是相同的,不能出現每一行的維度不同,不然會報錯。
- 神經網絡中的loss函數的選擇不當,會導致在某些情況下報錯,因此要注意Loss函數的選擇。
- Keras神經網絡的兩大卡點應該是:1. 各種參數的設置。 2. 輸入數據的格式維度問題。
- 卷積神經網絡和一般的分類器略有不同,卷積神經網絡通過卷積核,能夠自動提取特征,不需要人工提取特征,因此省去了大量的特征提取工程,但是因此,CNN需要的數據量要遠高於神經網絡、邏輯回歸,SVM等數據分析。極端情況下,邏輯回歸,神經網絡,SVM等分類器只要模型足夠簡單,神經元個數較少,其實未必需要大量的樣本,也就是說邏輯回歸、神經網絡和SVM的模型可以很簡單。
- 圖像處理適合用CNN的方法解決。
- CNN的原理是通過卷積核來查找圖像某方面的特征,然后將這些特征輸入到模型里面去,和結果建立一種關系,因此是對特征的分類。
- CNN只需要輸入卷積核的個數和步長,模型就會自動生成卷積核,然后提取特征,不需要人為去設置卷積矩陣。