caffe詳解之Dropout層

2021-08-20 14:45:53 字數 1057 閱讀 2333

從零開始,一步一步學習caffe的使用,期間貫穿深度學習和調參的相關知識!

dropout是乙個防止過擬合的層,只需要設定乙個dropout_ratio就可以了。

layer 

}

def dropout(x, drop_probability):

keep_probability = 1 - drop_probability

assert 0 <= keep_probability <= 1

# 這種情況下把全部元素都丟棄。

if keep_probability == 0:

return x.zeros_like()

# 隨機選擇一部分該層的輸出作為丟棄元素。

mask = nd.random.uniform(

0, 1.0, x.shape, ctx=x.context) 

# 保證 e[dropout(x)] == x

scale =  1 / keep_probability

return mask * x * scale

dropout可以被認為是整合大量深層神經網路的實用bagging方法。但是bagging方法涉及訓練多個模型,並且在每個測試樣本上評估多個模型。當每個模型都是乙個大型神經網路時,bagging方法會耗費很多的時間和記憶體。而dropout則提供了一種廉價的bagging整合近似,能夠訓練和評估指數級數量的神經網路。

深度學習中的正則化

caffe之MNIST基礎詳解

cd caffe root data mnist get mnist.sh examples mnist create mnist.sh 開啟lenet train test.prototxt檢視詳細資訊 資料層定義如下圖,需要注意的是source和backend,batch size也可以根據需要...

caffe詳解之資料層

從零開始,一步一步學習caffe的使用,期間貫穿深度學習和調參的相關知識!layer transform param data param 使用lmdb layer transform param data param 使用hdf5 layer 使用 使用記憶體 layer transform pa...

caffe詳解之softmax層

從零開始,一步一步學習caffe的使用,期間貫穿深度學習和調參的相關知識!softmax layer 輸出似然值 layers公式如下所示 softmax loss layer 輸出loss值 layer 公式如下所示 loss param 說明 enum normalizationmode 1 未...