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

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.

主站蜘蛛池模板: 涪陵区| 浏阳市| 西城区| 永善县| 宿州市| 岳池县| 伽师县| 密山市| 公主岭市| 娱乐| 库车县| 太湖县| 合肥市| 潮州市| 三穗县| 临夏市| 庆元县| 海盐县| 泌阳县| 阿勒泰市| 武清区| 南汇区| 芷江| 油尖旺区| 和田县| 邯郸县| 乳源| 武鸣县| 青州市| 克什克腾旗| 临武县| 东乌珠穆沁旗| 股票| 田林县| 沂水县| 二手房| 湘潭市| 沙雅县| 浦江县| 元阳县| 眉山市|