thus if you have observations and your batch size is each epoch will consist of iterations where observations (data pointswill be passed through the network at time and the weights on the hidden layer units will be updated however we can see that the overall loss and training accuracy remains the same which means the model isn' really learning anything from the looks of itthe api for keras again follows the convention for scikit-learn modelshence we can use the predict function to predict for the data points in the test set in fact we use predict_classes to get the actual class label predicted for each test data instance in [ ]predictions model predict_classes(x_test / [===============eta let' evaluate the model performance by looking at the test data accuracy and other performance metrics like precisionrecalland score do not despair if you do not understand some of these termsas we will be covering them in detail in for nowyou should know that scores closer to indicate better results an accuracy of would indicate model accuracywhich is perfection luckilyscikit-learn provides us with necessary performance metric measuring apis in [ ]from sklearn import metrics print('accuracy:'metrics accuracy_score(y_true=y_testy_pred=predictions)print(metrics classification_report(y_true=y_testy_pred=predictions))score accuracy precision recall -score support avg total from the previous performance metricswe can see that even though model accuracy is %for data points having cancer (malignanti label it misclassifies them as ( instancesand remaining instances where class label is (benign)it classifies them perfectly thus this model hasn' learned much and predicts every response as benign (label can we do better than thisthe power of deep learning the idea of deep learning is to use multiple hidden layers to learn latent and complex data patternsrelationshipsand representations to build model that learns and generalizes well on the underlying data let' take the previous example and convert it to fully connected deep neural network (dnnby introducing two more hidden layers the following snippet builds and trains dnn with the same configuration as our previous experiment only with the addition of two new hidden layers in [ ]model sequential(model add(dense( input_dim= activation='relu')model add(dense( activation='relu')model add(dense( activation='relu')model add(dense( activation='sigmoid')model compile(loss='binary_crossentropy'optimizer='rmsprop'metrics=['accuracy']model fit(x_trainy_train