0. 写作目的
通过实验分析keras中Dropout在训练阶段和测试阶段的使用情况。
结论: Keras使用的 Inverted Dropout,因此测试时不需要修改 Dropout中的参数(rate)。
1. Dropout 的实现方式
Dropout的实现方式有两种。
Dropout:(使用较少, AlexNet使用的是这种Dropout)
训练阶段:
keepProb: 保留该神经元的概率。
d3 = np.random.rand( a3.shape[0], a3.shape[1] ) < keepProb
测试阶段: 计算的结果需要乘以keepProb:
Inverted Dropout:(目前常用的方法):
训练阶段:
d3 = np.random.rand( a3.shape[0], a3.shape[1] ) < keepProb