Keras is a very popular Python Deep Learning library.
Recently, the creator of Keras, Francois Chollet, published the excellent book Deep Learning with Python.
This repository is a C# port of https://github.com/fchollet/deep-learning-with-python-notebooks using CNTK as backend.
Ch_02_First_Look_At_A_Neural_Network introduces softmax and fully connected layers. MNIST data set.
Ch_03_Classifying_Movie_Reviews introduces binary cross-entropy. IMDB data set.
Ch_03_Predicting_House_Prices introduces MSE and KFold training on a regression problem. Housing Prices dataset.
Ch_04_Overfitting_and_Underfitting introduces Regularization and Dropout. Housing Prices dataset.
Ch_05_Introduction_to_Convnets introduces Conv2D filters. MNIST data set.
Ch_05_Using_Convnets_With_Small_Datasets introduces on-the-fly data augmentation. Cats And Dogs dataset.
Ch_05_Using_A_Pretrained_Convnet uses the VGG16 "bottleneck" features, with optional augmentation, and fine-tuning.
Ch_05_Visualizing_Intermediate_Activations displays the feature maps that are output by various layers.
Ch_05_Visualizing_Convnet_Filters finds the visual pattern that each filter responds to using gradient ascent in input space.
Ch_05_Class_Activation_Heatmaps show which part of an image a convnet focused on.
The folder DeepLearning
contains the Visual Studio 2015 solution.
No need to install CNTK, as it will be installed automatically by NuGet.
If you have an NVIDIA graphics card, you will need to have CUDA + cuDNN installed.
The project is self-contained. No need to install anything else.
Note that apart from CNTK, the following NuGet packages are used:
- Newtonsoft.JSON for parsing the ImageNet .json files.
- OpenCV For Windows (pre-built) for some image manipulation.
- OxyPlot as a replacement of Matplotlib.
- SciColorMaps, which are custom .NET color maps for scientific visualization.
If you would like to experiment with the original Python code, the folder Python
contains the python code, as extracted from the notebooks.
To run the Python code on Windows 10, just get anaconda3, install Keras (with pip install keras
), and also install CNKT, if you would like
to use CNTK as Keras backend.
For each Python script in the Python
folder, there is a corresponding C# project, with a README.md
file that explains how the port was made.