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

How to do it...

A deep neural network architecture is built by adding multiple hidden layers between input and output layers, as follows:

  1. Load the dataset and scale it:
(X_train, y_train), (X_test, y_test) = mnist.load_data()
num_pixels = X_train.shape[1] * X_train.shape[2]
X_train = X_train.reshape(X_train.shape[0], num_pixels).astype('float32')
X_test = X_test.reshape(X_test.shape[0], num_pixels).astype('float32')
X_train = X_train/255
X_test = X_test/255
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
num_classes = y_test.shape[1]
  1. Build a model with multiple hidden layers connecting the input and output layers:
model = Sequential()
model.add(Dense(1000, input_dim=784, activation='relu'))
model.add(Dense(1000,activation='relu'))
model.add(Dense(1000,activation='relu'))
model.add(Dense(10, activation='softmax'))

The preceding model architecture results in a model summary, as follows:

Note that the preceding model results in a higher number of parameters, as a result of deep architectures (as there are multiple hidden layers in the model).

  1. Now that the model is set up, let's compile and fit the model:
model.compile(loss='categorical_crossentropy', optimizer=adam, metrics=['accuracy'])
history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=250, batch_size=1024, verbose=1)

The preceding results in a model with an accuracy of 98.6%, which is slightly better than the accuracies we observed with the model architectures that we saw earlier. The training and test loss and accuracy are as follows (the code to generate the plots in the following diagram remains the same as the code we used in step 8 of the Training a vanilla neural network recipe):

Note that, in this scenario, there is a considerable gap between training and test loss, indicating that the deep feedforward neural network specialized on training data. Again, in the sections on overfitting, we will learn about ways to avoid overfitting on training data.

主站蜘蛛池模板: 定州市| 乾安县| 宁化县| 榆林市| 巨野县| 湘潭市| 克拉玛依市| 江口县| 花莲市| 清徐县| 泸州市| 九台市| 虎林市| 天柱县| 宁乡县| 陈巴尔虎旗| 乌拉特后旗| 镇宁| 洛川县| 日土县| 永城市| 梧州市| 普陀区| 喀喇| 敦化市| 山阳县| 大悟县| 龙海市| 孝昌县| 三穗县| 兴宁市| 华亭县| 澳门| 碌曲县| 黑山县| 宜昌市| 永泰县| 富平县| 慈利县| 铜梁县| 保靖县|