Convolutional Neural Networks (CNNs) are a class of deep neural networks that are particularly effective for image recognition and processing. Keras, a high-level neural networks API, makes it easy to build and train CNNs. In this tutorial, we will explore how to use Keras to create a CNN for image classification.
Prerequisites
Before you start, make sure you have the following prerequisites installed:
- Python 3.5+
- Keras
- TensorFlow or Theano
You can install Keras using pip:
pip install keras
Building the CNN
To build a CNN in Keras, we will use the Sequential API, which allows us to stack layers one after another.
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
model = Sequential()
# Add a convolutional layer with 32 filters and a kernel size of 3x3
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
# Add a max pooling layer with a pool size of 2x2
model.add(MaxPooling2D(pool_size=(2, 2)))
# Flatten the output of the previous layer
model.add(Flatten())
# Add a fully connected layer with 128 units and a ReLU activation function
model.add(Dense(128, activation='relu'))
# Add the output layer with softmax activation function
model.add(Dense(10, activation='softmax'))
Compiling and Training the Model
After building the model, we need to compile it with an optimizer, loss function, and metrics.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Next, we can train the model using our dataset.
# Assuming you have your training data in X_train and y_train variables
model.fit(X_train, y_train, epochs=10, batch_size=32)
Visualizing the Model
Keras provides a way to visualize the architecture of the model using the plot_model
function.
from keras.utils.vis_utils import plot_model
plot_model(model, to_file='model.png', show_shapes=True)
This will generate a file named model.png
in the current directory, showing the architecture of the model.
Further Reading
For more information on CNNs and Keras, check out the following resources:
Conclusion
In this tutorial, we explored how to build and train a CNN using Keras. CNNs are powerful tools for image recognition and processing, and Keras makes it easy to implement them. With this knowledge, you can start building your own image recognition systems!