In [1]:
# ----------------------------------------------------------------------------
## How to add a dropout layer to a Deep Learning Model in Keras
# ----------------------------------------------------------------------------

def Learn_By_Example_302(): 

    print()
    print(format('How to add a dropout layer to a Deep Learning Model in Keras','*^82'))    
    
    import warnings
    warnings.filterwarnings("ignore")
    
    # load libraries
    import keras as K
    from keras.models import Sequential
    from keras.layers import Dense, Dropout
    from sklearn import datasets
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import confusion_matrix
    
    # simulated data
    dataset = datasets.make_classification(n_samples=10000, n_features=20, n_informative=5, 
                n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, 
                weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0, 
                scale=1.0, shuffle=True, random_state=None)

    X = dataset[0];  y = dataset[1]
    print(X.shape);  print(y.shape)

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)    
    
    # Define a Deep Learning Model
    model = Sequential()
    model.add(Dense(30, input_dim=20, activation='relu'))
    model.add(Dropout(0.5)) # Dropout Layer
    model.add(Dense(18, activation='relu'))
    model.add(Dropout(0.5)) # Dropout Layer    
    model.add(Dense(1, activation='sigmoid'))
    
    # Compile the Model
    model.compile(loss='binary_crossentropy', optimizer='adam', 
                  metrics=['acc'])
    
    # Train the Model
    model.fit(X_train, y_train, epochs=150, batch_size=25, verbose = 1)
    
    # Evaluate the model
    scores = model.evaluate(X_test, y_test)
    print(); print(model.metrics_names); print(scores)
    print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
    
    # Confusion Matrix
    y_pred = model.predict(X_test)
    y_pred = (y_pred > 0.5)
    cm = confusion_matrix(y_test, y_pred); print("\nConfusion Matrix:\n", cm)
    
    # More on the Model
    print("\n\nBackend: ", K.backend.backend())    
    print(model.summary())
    
Learn_By_Example_302()
***********How to add a dropout layer to a Deep Learning Model in Keras***********
Using TensorFlow backend.
(10000, 20)
(10000,)
Epoch 1/150
6700/6700 [==============================] - 2s 303us/step - loss: 0.5992 - acc: 0.6685
Epoch 2/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.3903 - acc: 0.8236
Epoch 3/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.3236 - acc: 0.8652
Epoch 4/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.2906 - acc: 0.8912
Epoch 5/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.2680 - acc: 0.8993
Epoch 6/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.2530 - acc: 0.9101
Epoch 7/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.2392 - acc: 0.9176
Epoch 8/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.2257 - acc: 0.9231
Epoch 9/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.2236 - acc: 0.9260
Epoch 10/150
6700/6700 [==============================] - 0s 46us/step - loss: 0.2214 - acc: 0.9307
Epoch 11/150
6700/6700 [==============================] - 0s 50us/step - loss: 0.2090 - acc: 0.9340
Epoch 12/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.2084 - acc: 0.9345
Epoch 13/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.2009 - acc: 0.9369
Epoch 14/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1931 - acc: 0.9390
Epoch 15/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1963 - acc: 0.9434
Epoch 16/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1779 - acc: 0.9442
Epoch 17/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1865 - acc: 0.9448
Epoch 18/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1848 - acc: 0.9479
Epoch 19/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1833 - acc: 0.9454
Epoch 20/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1801 - acc: 0.9437
Epoch 21/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1735 - acc: 0.9466
Epoch 22/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1815 - acc: 0.9457
Epoch 23/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1715 - acc: 0.9488
Epoch 24/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1700 - acc: 0.9473
Epoch 25/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1800 - acc: 0.9448
Epoch 26/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1697 - acc: 0.9458
Epoch 27/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1693 - acc: 0.9478
Epoch 28/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1749 - acc: 0.9478
Epoch 29/150
6700/6700 [==============================] - 0s 46us/step - loss: 0.1732 - acc: 0.9491
Epoch 30/150
6700/6700 [==============================] - 0s 48us/step - loss: 0.1636 - acc: 0.9473
Epoch 31/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1758 - acc: 0.9470
Epoch 32/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1634 - acc: 0.9491
Epoch 33/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1672 - acc: 0.9504
Epoch 34/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1676 - acc: 0.9446
Epoch 35/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1635 - acc: 0.9460
Epoch 36/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1719 - acc: 0.9478
Epoch 37/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1698 - acc: 0.9496
Epoch 38/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1782 - acc: 0.9476
Epoch 39/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1613 - acc: 0.9496
Epoch 40/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1684 - acc: 0.9496
Epoch 41/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1595 - acc: 0.9496
Epoch 42/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1659 - acc: 0.9472
Epoch 43/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1573 - acc: 0.9512
Epoch 44/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1599 - acc: 0.9475
Epoch 45/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1685 - acc: 0.9431
Epoch 46/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1661 - acc: 0.9470
Epoch 47/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1617 - acc: 0.9469
Epoch 48/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1691 - acc: 0.9488
Epoch 49/150
6700/6700 [==============================] - 0s 48us/step - loss: 0.1669 - acc: 0.9518
Epoch 50/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1607 - acc: 0.9499
Epoch 51/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1672 - acc: 0.9488
Epoch 52/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1636 - acc: 0.9490
Epoch 53/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1658 - acc: 0.9479
Epoch 54/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1569 - acc: 0.9499
Epoch 55/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1676 - acc: 0.9479
Epoch 56/150
6700/6700 [==============================] - 0s 46us/step - loss: 0.1688 - acc: 0.9488
Epoch 57/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1570 - acc: 0.9516
Epoch 58/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1690 - acc: 0.9497
Epoch 59/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1712 - acc: 0.9484
Epoch 60/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1727 - acc: 0.9484
Epoch 61/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1558 - acc: 0.9554
Epoch 62/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1523 - acc: 0.9525
Epoch 63/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1598 - acc: 0.9506
Epoch 64/150
6700/6700 [==============================] - 0s 41us/step - loss: 0.1685 - acc: 0.9464
Epoch 65/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1637 - acc: 0.9507
Epoch 66/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1582 - acc: 0.9501
Epoch 67/150
6700/6700 [==============================] - ETA: 0s - loss: 0.1632 - acc: 0.953 - 0s 45us/step - loss: 0.1633 - acc: 0.9536
Epoch 68/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1554 - acc: 0.9542
Epoch 69/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1611 - acc: 0.9479
Epoch 70/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1653 - acc: 0.9504
Epoch 71/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1624 - acc: 0.9509
Epoch 72/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1557 - acc: 0.9518
Epoch 73/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1535 - acc: 0.9543
Epoch 74/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1594 - acc: 0.9525
Epoch 75/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1485 - acc: 0.9566
Epoch 76/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1592 - acc: 0.9512
Epoch 77/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1579 - acc: 0.9548
Epoch 78/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1513 - acc: 0.9552
Epoch 79/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1624 - acc: 0.9500
Epoch 80/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1565 - acc: 0.9487
Epoch 81/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1503 - acc: 0.9528
Epoch 82/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1500 - acc: 0.9545
Epoch 83/150
6700/6700 [==============================] - 0s 41us/step - loss: 0.1557 - acc: 0.9527
Epoch 84/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1471 - acc: 0.9552
Epoch 85/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1509 - acc: 0.9528
Epoch 86/150
6700/6700 [==============================] - 0s 48us/step - loss: 0.1529 - acc: 0.9545
Epoch 87/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1420 - acc: 0.9572
Epoch 88/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1607 - acc: 0.9521
Epoch 89/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1540 - acc: 0.9539
Epoch 90/150
6700/6700 [==============================] - 0s 46us/step - loss: 0.1508 - acc: 0.9528
Epoch 91/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1568 - acc: 0.9524
Epoch 92/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1537 - acc: 0.9549: 0s - loss: 0.1708 - acc: 0.
Epoch 93/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1527 - acc: 0.9554
Epoch 94/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1506 - acc: 0.9557
Epoch 95/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1517 - acc: 0.9564
Epoch 96/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1525 - acc: 0.9543
Epoch 97/150
6700/6700 [==============================] - 0s 51us/step - loss: 0.1553 - acc: 0.9543
Epoch 98/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1460 - acc: 0.9554: 0s - loss: 0.1462 - acc: 0.956
Epoch 99/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1443 - acc: 0.9558
Epoch 100/150
6700/6700 [==============================] - 0s 41us/step - loss: 0.1373 - acc: 0.9582
Epoch 101/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1649 - acc: 0.9524
Epoch 102/150
6700/6700 [==============================] - 0s 48us/step - loss: 0.1501 - acc: 0.9536
Epoch 103/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1515 - acc: 0.9528
Epoch 104/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1571 - acc: 0.9569
Epoch 105/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1592 - acc: 0.9564
Epoch 106/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1497 - acc: 0.9561
Epoch 107/150
6700/6700 [==============================] - 0s 48us/step - loss: 0.1432 - acc: 0.9555
Epoch 108/150
6700/6700 [==============================] - 0s 46us/step - loss: 0.1540 - acc: 0.9510
Epoch 109/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1559 - acc: 0.9540
Epoch 110/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1492 - acc: 0.9530
Epoch 111/150
6700/6700 [==============================] - 0s 42us/step - loss: 0.1520 - acc: 0.9572
Epoch 112/150
6700/6700 [==============================] - 0s 41us/step - loss: 0.1532 - acc: 0.9567
Epoch 113/150
6700/6700 [==============================] - 0s 52us/step - loss: 0.1524 - acc: 0.9543
Epoch 114/150
6700/6700 [==============================] - 0s 46us/step - loss: 0.1510 - acc: 0.9528
Epoch 115/150
6700/6700 [==============================] - 0s 43us/step - loss: 0.1481 - acc: 0.9555
Epoch 116/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1455 - acc: 0.9564
Epoch 117/150
6700/6700 [==============================] - 0s 50us/step - loss: 0.1509 - acc: 0.9512
Epoch 118/150
6700/6700 [==============================] - 0s 48us/step - loss: 0.1420 - acc: 0.9569
Epoch 119/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1610 - acc: 0.9570
Epoch 120/150
6700/6700 [==============================] - 0s 52us/step - loss: 0.1536 - acc: 0.9530
Epoch 121/150
6700/6700 [==============================] - 0s 50us/step - loss: 0.1390 - acc: 0.9561
Epoch 122/150
6700/6700 [==============================] - 0s 49us/step - loss: 0.1440 - acc: 0.9549
Epoch 123/150
6700/6700 [==============================] - ETA: 0s - loss: 0.1450 - acc: 0.955 - 0s 45us/step - loss: 0.1467 - acc: 0.9548
Epoch 124/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1558 - acc: 0.9540
Epoch 125/150
6700/6700 [==============================] - 0s 57us/step - loss: 0.1531 - acc: 0.9515
Epoch 126/150
6700/6700 [==============================] - 0s 49us/step - loss: 0.1557 - acc: 0.9536
Epoch 127/150
6700/6700 [==============================] - 0s 52us/step - loss: 0.1519 - acc: 0.9570
Epoch 128/150
6700/6700 [==============================] - 0s 48us/step - loss: 0.1510 - acc: 0.9537
Epoch 129/150
6700/6700 [==============================] - 0s 53us/step - loss: 0.1467 - acc: 0.9548
Epoch 130/150
6700/6700 [==============================] - 0s 54us/step - loss: 0.1417 - acc: 0.9560
Epoch 131/150
6700/6700 [==============================] - 0s 56us/step - loss: 0.1463 - acc: 0.9530
Epoch 132/150
6700/6700 [==============================] - 0s 49us/step - loss: 0.1465 - acc: 0.9533
Epoch 133/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1436 - acc: 0.9564
Epoch 134/150
6700/6700 [==============================] - 0s 50us/step - loss: 0.1454 - acc: 0.9590
Epoch 135/150
6700/6700 [==============================] - 0s 52us/step - loss: 0.1456 - acc: 0.9558
Epoch 136/150
6700/6700 [==============================] - 0s 60us/step - loss: 0.1544 - acc: 0.9554
Epoch 137/150
6700/6700 [==============================] - 0s 67us/step - loss: 0.1514 - acc: 0.9543
Epoch 138/150
6700/6700 [==============================] - 0s 53us/step - loss: 0.1539 - acc: 0.9537
Epoch 139/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1646 - acc: 0.9521
Epoch 140/150
6700/6700 [==============================] - 0s 45us/step - loss: 0.1573 - acc: 0.9554
Epoch 141/150
6700/6700 [==============================] - 0s 44us/step - loss: 0.1485 - acc: 0.9558
Epoch 142/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1448 - acc: 0.9555
Epoch 143/150
6700/6700 [==============================] - 0s 49us/step - loss: 0.1525 - acc: 0.9539
Epoch 144/150
6700/6700 [==============================] - 0s 49us/step - loss: 0.1448 - acc: 0.9564
Epoch 145/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1502 - acc: 0.9563
Epoch 146/150
6700/6700 [==============================] - 0s 49us/step - loss: 0.1439 - acc: 0.9567
Epoch 147/150
6700/6700 [==============================] - 0s 50us/step - loss: 0.1431 - acc: 0.9558
Epoch 148/150
6700/6700 [==============================] - 0s 47us/step - loss: 0.1528 - acc: 0.9557
Epoch 149/150
6700/6700 [==============================] - 0s 46us/step - loss: 0.1526 - acc: 0.9554
Epoch 150/150
6700/6700 [==============================] - 0s 51us/step - loss: 0.1470 - acc: 0.9563
3300/3300 [==============================] - 0s 73us/step

['loss', 'acc']
[0.10139499868971832, 0.971818208694458]

acc: 97.18%

Confusion Matrix:
 [[1647   38]
 [  55 1560]]


Backend:  tensorflow
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 30)                630       
_________________________________________________________________
dropout_1 (Dropout)          (None, 30)                0         
_________________________________________________________________
dense_2 (Dense)              (None, 18)                558       
_________________________________________________________________
dropout_2 (Dropout)          (None, 18)                0         
_________________________________________________________________
dense_3 (Dense)              (None, 1)                 19        
=================================================================
Total params: 1,207
Trainable params: 1,207
Non-trainable params: 0
_________________________________________________________________
None