官术网_书友最值得收藏!

How to do it...

In code, batch normalization is applied as follows:

Note that we will be using the same data-preprocessing steps as those we used in step 1 and step 2 in the Scaling the input dataset recipe.

  1. Import the BatchNormalization method as follows:
from keras.layers.normalization import BatchNormalization
  1. Instantiate a model and build the same architecture as we built when using the regularization technique. The only addition is that we perform batch normalization in a hidden layer:
model = Sequential()
model.add(Dense(1000, input_dim=784,activation='relu', kernel_regularizer = l2(0.01)))
model.add(BatchNormalization())
model.add(Dense(10, activation='softmax', kernel_regularizer = l2(0.01)))
  1. Build, compile, and fit the model as follows:
from keras.optimizers import Adam
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=100, batch_size=1024, verbose=1)

The preceding results in training that is much faster than when there is no batch normalization, as follows:

The previous graphs show the training and test loss and accuracy when there is no batch normalization, but only regularization. The following graphs show the training and test loss and accuracy with both regularization and batch normalization:

Note that, in the preceding two scenarios, we see much faster training when we perform batch normalization (test dataset accuracy of ~97%) than compared to when we don't (test dataset accuracy of ~91%).

Thus, batch normalization results in much quicker training.

主站蜘蛛池模板: 微博| 建阳市| 科技| 深水埗区| 安徽省| 东阿县| 巴楚县| 宜阳县| 潮安县| 崇礼县| 高唐县| 恭城| 大渡口区| 加查县| 巴青县| 长汀县| 许昌市| 武川县| 西乌珠穆沁旗| 吴忠市| 丽江市| 视频| 固阳县| 定南县| 宝应县| 公主岭市| 玉田县| 普兰县| 穆棱市| 南投县| 土默特右旗| 滕州市| 曲松县| 金华市| 安康市| 鄂托克旗| 沾益县| 宁安市| 渭源县| 辰溪县| 新宁县|