Keras is a deep learning framework that is known and adopted by deep learning engineers. It provides a wrapper around the TensorFlow, CNTK, and the Theano frameworks. This wrapper you gives the ability to easily create deep learning models by stacking different types of layers. The power of Keras lies in its simplicity and readability of the code. If you want to use multiple GPUs during training, you need to set the devices in the same way as with TensorFlow.
- We start by installing Keras on our local Anaconda environment as follows:
conda install -c conda-forge keras
Make sure your deep learning environment is activated before executing this command.
- Next, we import
keras
library into our Python environment:
from keras.models import Sequential from keras.layers import Dense
This command outputs the used by Keras. By default, the TensorFlow framework is used:
Figure 1.3: Keras prints the backend used
- To provide a dummy dataset, we will use
numpy
and the following code:
import numpy as np x_input = np.array([[1,2,3,4,5]]) y_input = np.array([[10]])
- When using sequential mode, it's straightforward to stack multiple layers in Keras. In this example, we use one hidden layer with 32 units and an output layer with one unit:
model = Sequential() model.add(Dense(units=32, input_dim=x_input.shape[1])) model.add(Dense(units=1))
- Next, we need to compile our model. While compiling, we can set different settings such as
loss
function,optimizer
, andmetrics
:
model.compile(loss='mse', optimizer='sgd', metrics=['accuracy'])
- In Keras, you can easily print a summary of your model. It will also show the number of parameters within the defined model:
model.summary()
In the following figure, you can see the summary of our build model:
Figure 1.4: Example of a Keras model summary
- Training the model is straightforward with one command, while simultaneously saving the results to a variable called
history
:
history = model.fit(x_input, y_input, epochs=10, batch_size=32)
- For testing, the prediction function can be used after training:
pred = model.predict(x_input, batch_size=128)
Note
In this short introduction to Keras, we have demonstrated how easy it is to implement a neural network in just a couple of lines of code. However, don't confuse simplicity with power. The Keras framework provides much more than we've just demonstrated here and one can adjust their model up to a granular level if needed.