iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
自我挑戰組

人臉辨識的基礎理論系列 第 28

人臉辨識-day28 模型訓練

  • 分享至 

  • xImage
  •  

實作完可以偵測人臉的哈爾特徵後,在將所有的訓練資料不需要的背景利用人臉偵測的框給剪裁掉。以下圖為例
https://ithelp.ithome.com.tw/upload/images/20211013/20142039rlD0ZvoZbK.png

在用模型進行訓練,運用Resnet的模型架構來實作人臉辨識,將影像灰階後放入已建立好的模型Resnet來訓練,使用adam來當作優化器,學習率調成0.007(需要時要一一嘗試)。

resnet_model = resnet_network((x, x, 1 ))
adam = tf.keras.optimizers.Adam(learning_rate=0.007)
model.compile(optimizer="adam", loss=mse, metrics=["mae", "acc"])

learning rate是模型學習訓練級的速度,learning rate越大訓練的越快,反之則越慢,因為Resnet的架構已經很深所以學習率需要調小一些,才較不容易overfitting,損失函數使用mse,但是自己定義的mse,才可以在訓練時因為資料不平均的情況,要多訓練已知者(Anchor)。

def mse_pred(y_true, y_pred,a1=0.1,a2=0.9):

    E1=tf.where(tf.equal(y_true, 1), K.mean(K.square(y_pred-y_true), axis=-1), 0)
    E2=tf.where(tf.equal(y_true, 0), K.mean(K.square(y_pred-y_true), axis=-1), 0)
    total_loss=E1*a1+E2*a2

return total

在訓練時也要注意準確度是否有慢慢上升,如果訓練資料夠多,可以將資料分為訓練集和驗證集,利用驗證集的準確度較可避免模型學習訓練集學習太好,導致驗證集的準確度隨著epoch的增加反而下降。


上一篇
人臉辨識-day27 實作人臉偵測
下一篇
人臉辨識-day29
系列文
人臉辨識的基礎理論30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言