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

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.

主站蜘蛛池模板: 股票| 旅游| 德州市| 石河子市| 合作市| 浏阳市| 鄂托克旗| 青河县| 锡林浩特市| 永仁县| 游戏| 两当县| 彰化县| 房山区| 观塘区| 阿克陶县| 漯河市| 德庆县| 鲁甸县| 五台县| 湖北省| 吉木乃县| 壶关县| 洮南市| 尚志市| 万荣县| 聊城市| 安岳县| 白朗县| 潼南县| 象山县| 漠河县| 哈巴河县| 饶平县| 平昌县| 仁化县| 奉贤区| 曲松县| 扬中市| 阳春市| 长子县|