Keras is one of the most widely used frameworks for deep learning used today. It runs in Python and runs on top of TensorFlow in the 2.x version, and is therefore one of the primary choices for Deep Learning engineers these days.

However, I find that the Keras documentation is slightly… unwelcoming.

With that, I mean that the docs simply (and perhaps agreeably) describe the Keras APIs, thus the functions that can be used within Keras, without a thorough intuitive explanation about why certain things are as they are.

In this Collection, I will be working towards a comprehensive yet complete overview of Keras. I will teach you how it works and how you can create simple and more complex models in Python. Additionally, I will cover extensions to the Keras framework that have been developed by the deep learning community.

This way, you’ll be up to speed with Keras before you know!

If you wish to acquire more information about deep learning first or wish to know what these ‘Collections’ are, you may be interested in these links:

**Dissecting Deep Learning:**a Collection that covers the concepts of deep learning in a framework-agnostic way.**About the Collections project:**the rationale for why I’m putting a lot of time in these works, as well as what they are.

**Please note that this is a work in progress.** I always have the motto to publish whatever is ready which allows the reader to start learning already. That’s why you may find that many of the blogs noted below haven’t been finished yet. However, please come back every now and then, because I’ll do my best to add new ones as often as I can.

Also feel free to leave any comments below! 🙂

## Table of contents

- Getting to know Keras
- Basic neural networks
- Loss functions
- Convolutional Neural Networks
- Recurrent Neural Networks
- Autoencoders
- Advanced Activation Layers
- Normalization & regularization
- Data Preprocessing with Keras
- Model visualization
- Model interpretability: tf-explain
- Model evaluation
- Keras Callbacks
- Keras automation
- Edge AI with TensorFlow & model optimization
- Distributed training
- Other Keras topics

## Getting to know Keras

- What is Keras and why has it emerged?
- The architecture of Keras.
- The Sequential and the Functional APIs.
- Your First Machine Learning Project with TensorFlow and Keras

## Basic neural networks

- Why you can’t truly create Rosenblatt’s Perceptron with Keras.
- How to create a basic MLP classifier with the Keras Sequential API
- Creating an MLP for regression with Keras
- Implementing ReLU, Sigmoid and Tanh activation functions in Keras
- How to use LiSHT activation function with Keras?
- How to use the FTSwish activation function with Keras?
- Using SELU with TensorFlow and Keras
- Working with Imbalanced Datasets with TensorFlow and Keras
- Creating a Multilabel Neural Network Classifier with Tensorflow and Keras

## Loss functions

- How to use huber loss in Keras?
- How to use hinge & squared hinge loss with Keras?
- How to use categorical / multiclass hinge with Keras?
- How to use binary & categorical crossentropy with Keras?
- How to use sparse categorical crossentropy in Keras?
- How to use MAE, MSE, MAPE & RMSE with Keras?
- How to use Logcosh with Keras?
- How to use Kullback-Leibler divergence (KL divergence) with Keras?

## Convolutional Neural Networks

- How to create a Convolutional Neural Network classifier with Keras?
- What is depthwise separable convolution? A Keras example.
- A simple Conv3D example with Keras
- Transposed convolutions with Keras? Using Conv2DTranspose.
- How to upsample with Keras? Using Upsampling2D.
- Cropping your CNN input with Cropping layers in Keras.
- How to use padding with Keras?
- Using Constant Padding, Reflection Padding and Replication Padding with Keras
- Max Pooling, Average Pooling, Global Max Pooling, Global Average Pooling – Examples in Keras.
- How to build a ConvNet for CIFAR-10 and CIFAR-100 classification with Keras?
- LocallyConnected layers in Keras.
- How to use Conv2D with Keras?
- How to Perform Fruit Classification with Deep Learning in Keras

## Recurrent Neural Networks

- A Keras SimpleRNN example.
- A Keras GRU example.
- Build an LSTM Model with TensorFlow and Keras
- Extending LSTMs with ConvLSTMs – a Keras example.
- Bidirectional LSTMs with TensorFlow and Keras

## Autoencoders

- Signal Noise Removal Autoencoder
- Image Denoiser Autoencoder
- Visualizing encoded state of an autoencoder
- Creating a variational autoencoer with Keras

## Advanced Activation Layers

- Creating a LeakyReLU activating model in Keras.
- Using Keras to create a Parametric Rectified Linear Unit (PReLU) model.
- Exponential Linear Unit – a Keras based example.
- What is ThresholdedReLU? An example with Keras.

## Normalization & regularization

- How to use Batch Normalization with Keras?
- How to use L1, L2 and Elastic Net Regularization with Keras?
- How to use Dropout with Keras?
- AlphaDropout and GaussianDropout with Keras.
- Random data augmentation with GaussianNoise in Keras.

## Data Preprocessing with Keras

- How to find the value for Keras input_shape/input_dim?
- Using simple generators to flow data from file with Keras
- How to use H5Py and Keras to train with data from HDF5 files?
- How to use HDF5Matrix with Keras?
- How to Normalize or Standardize a Dataset in Python?
- Python Feature Scaling with Outliers in your Dataset
- Feature Scaling with Python and Sparse Data
- One-Hot Encoding for Machine Learning with TensorFlow and Keras

## Model visualization

- How to visualize a model with Keras?
- How to visualize the training process in Keras?
- How to visualize the decision boundary for your Keras model?
- Visualizing Keras model inputs with Activation Maximization
- Visualizing Keras CNN attention: Saliency maps
- Visualizing Keras CNN attention: Grad-CAM Class Activation Maps
- Visualize layer outputs of your Keras classifier with Keract
- What do ConvNets see? Visualizing filters with Activation Maximization
- Visualizing encoded state of an autoencoder
- Visualizing Keras neural networks with Net2Vis and Docker
- Visualizing your Neural Network with Netron

## Model interpretability: tf-explain

- What is
`tf-explain`

? - Neural network Activation Visualization with tf-explain
- Visualizing gradient importance with Vanilla Gradients and tf-explain
- Visualize gradient importance with Gradients*Inputs and tf-explain
- Visualize neural network confidence with Occlusion Sensitivity and tf-explain
- Visualize neural network output determinants with GradCAM and tf-explain
- Sharper ConvNet explainability visualization with SmoothGRAD and tf-explain
- Using Integrated Gradients to visualize neural network decisions with tf-explain

## Model evaluation

- How to use K-fold Cross Validation with Keras?
- How to evaluate a Keras model with model.evaluate
- How to check if your Deep Learning model is underfitting or overfitting?

## Keras Callbacks

- An introduction to TensorFlow.Keras callbacks
- How to use Tensorboard with Keras?
- Avoid wasting resources with EarlyStopping and ModelCheckpoint in Keras
- Adjust learning rates on loss plateaus.

## Keras automation

## Edge AI with TensorFlow & model optimization

- TensorFlow model optimization: an introduction to Quantization
- TensorFlow model optimization: an introduction to Pruning
- TensorFlow pruning schedules: ConstantSparsity and PolynomialDecay
- Measuring sparsity during training: TensorFlow PruningSummaries

## Distributed training

- Distributed training: TensorFlow and Keras models with Apache Spark
- TensorFlow Cloud: easy cloud-based training of your Keras model

## Other Keras topics

- Exploring the Keras Datasets
- Making more datasets available for Keras
- Tutorial: building a Hot Dog – Not Hot Dog classifier with TensorFlow and Keras
- Storing web app machine learning predictions in a SQL database
- Linearity vs nonlinearity with Keras: an example with classification.
- How to save and load your model with Keras?
- Finding the optimal learning rate with Keras.
- Using Cyclical Learning Rates with Keras.
- How to predict new samples with your Keras model?
- How to enable Keras on your GPU?
- How is accuracy computed with Keras?
- How is Keras different from Tensorflow?
- Easy install of Jupyter Notebook with TensorFlow and Docker
- How to prevent overfitting with Keras?
- How to pick an optimizer with Keras?
- How to add regularization to your Keras model?
- How to add Dropout to your Keras model?
- How to add layers to your Keras model?
- How to check if you’re using Keras/Tensorflow for GPU?
- Object Detection for Images and Videos with TensorFlow 2.x
- Greedy layer-wise training of deep networks, a TensorFlow/Keras example