iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

來創造一個AI角色吧-新手的探尋之路系列 第 8

Day07 新手村的練習課程-先轉一轉,翻一翻,移一移,再

  • 分享至 

  • xImage
  •  

在跑training時,每次的epoch都會秀出每次訓練和測試的loss以及accuracy,我們可以將它畫成圖:
https://ithelp.ithome.com.tw/upload/images/20220912/20141158EyBJ0HBT1q.pnghttps://ithelp.ithome.com.tw/upload/images/20220912/20141158V1spGHGKLs.png

我們可以看到大約在epoch大於5後,測試的accuracy以呈現水平沒有提升,反而測試的loss還有些微上升的趨向,這表示訓練資料已經訓練到飽和了,以學術名稱叫做"overfitting”。
我們將convolution的數量調高,並且增加一組(以我的電腦來說,這訓練時間約變為2倍QQ):

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(150, 150, 3)),
    tf.keras.layers.MaxPooling2D(2, 2),
    tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2,2),
    tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2,2),
    tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2,2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dense(1, activation='sigmoid')
])

可以看到結果是接近的,同樣測試的accuracy已達水平且測試的loss還有些微上升的趨向,只有飽和情況略為延後約2個epoch:
https://ithelp.ithome.com.tw/upload/images/20220912/20141158uXSZdu05hQ.pnghttps://ithelp.ithome.com.tw/upload/images/20220912/20141158sZ2BKQlSIT.png

這時我們可以利用ImageDataGenerator 的功能,將原本的圖庫轉一轉(rotation_range),調整大小(width_shift_range, height_shift_range),扭轉(shear_range),放大縮小(zoom_range),翻轉(horizontal_flip),而這在實際作用的解釋可以理解為,例如在旋轉和扭轉,能辨識出不同的姿勢或角度,調整大小和縮放則可以處理不同的體態等:

train_datagen = ImageDataGenerator(
      rescale=1./255,
      rotation_range=40,
      width_shift_range=0.2,
      height_shift_range=0.2,
      shear_range=0.2,
      zoom_range=0.2,
      horizontal_flip=True,
      fill_mode='nearest')

比較結果如下,不論是訓練還是測試,accuracy都還在上升,loss也還在下降,且測試的loss已經降至比之前的結果還低:
https://ithelp.ithome.com.tw/upload/images/20220912/20141158OjXkTvefWW.pnghttps://ithelp.ithome.com.tw/upload/images/20220912/20141158lF1RDPvxBl.png


上一篇
Day6 新手村的練習課程-喵星人與汪星人
下一篇
Day8 新手村的練習課程-再來一次是人是馬
系列文
來創造一個AI角色吧-新手的探尋之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言