2021年1月11日 星期一

在Keras上使用經典的CNN架構

markdown CNN架構選擇一直是deep learning中很重要的一部分,從早期LeNet-5用來手寫字元辨識
F-CNN、resnet、vgg19...
一開始心中都會有個疑問,到底這些層數是怎麼決定出來的
後來大概理解就像是hyperparameter一樣吧,透過不斷的實驗而得出來的最佳化結果
通常這類的CNN架構,還會包含預先訓練好的conv layer
讓你在訓練新的data時收斂速度更快

在keras中,只要簡單的指令就可以快速的把這些經典的CNN模型架起來
並且可以修改輸入的影像尺寸、增減模型的層數
```=python # 定義你的輸入影像尺寸 custom_input_shape =(128, 128, 3) # 定義你的data類別總數 classes = 6 # 從tf.keras.applications載入CNN架構 base_model=MobileNetV2(weights='imagenet', input_shape=custom_input_shape) x=base_model.output x=GlobalAveragePooling2D()(x) x=Dense(1024,activation='relu')(x) #增加dense層讓model可以學習更複雜的分類 x=Dense(1024,activation='relu')(x) #dense layer 2 x=Dense(512,activation='relu')(x) #dense layer 3 preds=Dense(classes,activation='softmax')(x) #最後一層需填入dataset的類別總數 model=keras.Model(inputs=base_model.input,outputs=preds) #宣告model, 指定輸入和輸出 model.summary() # 用文字方式顯示CNN架構 ``` 想看keras有甚麼經典模型可以看這裡Module: tf.keras.applications 參考:Keras with MobilenetV2 for Deep Learning

沒有留言:

張貼留言

AOI產業職涯規畫相關文章