# Keras Model Compilation, Evaluation and Prediction

Keras is an open-source Python library. It contains a ton of built-in functions and methods that are very useful for the developer. It focuses on the idea of Models. The model is a stack of layers. In a model, various layers are aligned in order. The very first layer receives the input, compile it, and produce the output. Further, the layers are fed with the output as input. The model compiles this input data, evaluate it, and predict the output. Let us learn in details about Keras Model Compilation, Evaluation and Prediction.

### Keras Model Compilation

This step deals with the compilation of the model. It is the necessary step that is necessary to perform before training the model. It is the final and important step in creating a model. After completing the compilation model, the training process begins. It allows you to configure the learning process. It is done using the compile method. To use the compile method, you have to pass some parameters as arguments. These parameters are as follows:

**1. Keras Loss Function:** It is useful while compiling the model. It enables you to find errors or deviations in the learning process. Loss is a module, you can import it in the following way:

from Keras import losses

**2. Keras Optimizer:** Keras provides quite a few optimizers as the module. Optimization is an important process that helps you to optimize the input weights. It also allows you to compare the prediction and the loss function.

from Keras import optimizers

**3. Keras Metrics:** It enables you to evaluate the performance of your model. Keras provides few metrics modules. You can import this module as follows:

from Keras import metrics

You can compile your model using the compile() method. After importing the modules mentioned above, use the compile method by following way:

model.compile(loss = ‘mean_squared_error’, optimizer = ‘sqd’, metrics = [metrics.categorical_accuracy])

Now, use a fit() method to train your model. Its main purpose is to evaluate your model of training.

### Keras Model Evaluation

During the development of the model, evaluation is a process that helps you to check whether the model is the best fit for the problem statement. It helps you to find the best model that represents the correct problem statement and the correct data. It helps you to determine how well the model will work in the future. The model evaluation aims to estimate the general accuracy of the model.

Keras provides you evaluate() method, to evaluate the model. It has the following main arguments:

**Verbose:**It returns true or false. It is useful to test the verbosity mode.**Object:**It enables you to predict the model object you have to evaluate.**Batch_size**: It helps you to detect the number of samples per gradient update. It is 32 in default.**Steps:**It specifies batches of samples. It represents a total number of steps before declaring the evaluation round finished.**Sample_weight:**It is an optional array. It contains weights to apply to the model’s loss for each sample.**X:**Vector, matrix, or array of training data.**Y:**Vector, matrix, or array of the target data.

Refer the following code while evaluating your model:

evaluate(object, x, y, batch_size = NULL, verbose = 1, sample_weight = NULL, steps = NULL)

### Keras Model Prediction

It is the final step. It helps you to predict the outcome of the model. Keras provides you a predict() method to predict your model. It enables you to get the prediction of the trained models.

Keras Predict() method has the following arguments:

**X:**It is a vector, matrix, or array of input data.**batch_size:**It takes an integer value. It is 32 by default.**Verbose:**It helps you to predict verbosity mode. It returns 0 or 1.**Steps:**It returns a total number of steps before declaring the evaluation round finished.**Callbacks:**It provides you a list of callbacks to apply during prediction.

In the above list of arguments, all the arguments are optional, only x is compulsory. It helps you to refer to the unknown input data.

predict(object, x, batch_size = NULL, verbose = 0, steps = NULL, callbacks = NULL )

## Conclusion

Keras is an open-source Python library. It focuses on the idea of models. Using Keras, you can develop your own customized model. There are various steps to train your model. It includes Keras model compilation, model evaluation, model training, model prediction, etc.

These are very important steps to deal with your model. You can test whether your model is fit or not. It is easy and simple to develop your Keras model.