iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0
AI & Data

當自動駕駛遇見AI系列 第 28

Day28-當自動駕駛遇見AI- TensorFlow Dropout

前言

Dropout 方法可以解决 overfitting(過度學習,過度擬合),以下介紹TensorFlow Dropout技術。

說明

Dropout是一種用於減少過度擬合的正則化技術。 該技術暫時從網絡中刪除單元(人工神經元),以及所有這些單元的傳入和傳出連接。 下圖說明工作原理。

https://ithelp.ithome.com.tw/upload/images/20181112/20107143dFZdVGsX47.png

TensorFlow實作

TensorFlow提供了tf.nn.dropout()函數,您可以使用它來實現dropout。
我們來看一個如何使用tf.nn.dropout()的例子。

keep_prob = tf.placeholder(tf.float32) # probability to keep units

hidden_layer = tf.add(tf.matmul(features, weights[0]), biases[0])
hidden_layer = tf.nn.relu(hidden_layer)
hidden_layer = tf.nn.dropout(hidden_layer, keep_prob)

logits = tf.add(tf.matmul(hidden_layer, weights[1]), biases[1])

上面的代碼說明瞭如何將dropout應用於神經網絡。

tf.nn.dropout()函數接受兩個參數:

  1. hidden_layer:您要應用dropout的張量
  2. keep_prob:保持(即不丟棄)任何給定單位的機率
    keep_prob允許您調整要刪除的單位數。 為了補償丟棄的單位,tf.nn.dropout()將保留(即不丟棄)的所有單位乘以1 / keep_prob。

在訓練期間,keep_prob的良好起始值為0.5。
在測試期間,使用keep_prob值1.0來保留所有單元並最大化模型的功能。


上一篇
Day27-當自動駕駛遇見AI- 2層神經網絡(2-Layer Neural Network)
下一篇
Day29-當自動駕駛遇見AI-TensorFlow Convolution Layer
系列文
當自動駕駛遇見AI30

尚未有邦友留言

立即登入留言