# ----------------------------------------------------------------------------
## 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