Library / SDK
PacktPublishing/Advanced-Deep-Learning-with-Keras avatar
PacktPublishing/Advanced-Deep-Learning-with-Keras

Advanced Deep Learning with Keras: a book codebase frozen at CUDA 10.2

Advanced Deep Learning with Keras, published by Packt

2,027 stars1,025 forksPythonMIT

At a glance

What is it?
Thirteen chapter folders of standalone scripts for a Packt book on TensorFlow 2 and Keras, with fourteen unpinned requirements and an install guide that assumes a 1060 GPU on Ubuntu 18.04 LTS. Useful as reading material, not as a stack you can pip install.
Who is it for?
Adopt this repository as reading material for one specific book, not as a dependency. It suits a reader working through the autoencoder and GAN chapters who wants runnable MNIST and CIFAR10 scripts; it does not suit anyone needing a supported library, a pinned environment, or a documented path past chapter five.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Activity is slowing. The repository last received commits 8 months ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Chapter folders mirror the book, and section numbers sit in filenames

There is nothing to import here. The repository holds thirteen numbered directories, chapter1-keras-quick-tour through chapter13-mi-unsupervised, plus a shared lib/ folder and requirements.txt, with scripts sitting directly in each chapter directory rather than inside a package. Naming does the indexing work: mlp-mnist-1.3.2.py encodes chapter 1, section 3, listing 2, and the same convention runs through cnn-mnist-1.4.1.py, rnn-mnist-1.5.1.py, resnet-cifar10-2.2.1.py, densenet-cifar10-2.4.1.py and denoising-autoencoder-mnist-3.3.1.py. Each script names its own dataset, so an MNIST file and a CIFAR10 file can be told apart without opening either. Generated output lands in subfolders the README links directly, for instance chapter3-autoencoders/saved_images/corrupted_and_denoised.png and the animation files under chapter4-gan/images. The default branch is master, and lib/ is the only shared code, with its contents left undescribed.

A 1060 GPU on Ubuntu 18.04 comes before the first import

Setup begins with the graphics driver, not with Python. A machine with at least 1 NVIDIA GPU (1060 or better) is required, and the tested configurations are 1060, 1080Ti, RTX 2080Ti, V100 and RTX Quadro 8000 on Ubuntu 18.04 LTS. The driver block runs before any conda environment exists, and nvidia-smi at the end is the checkpoint: at the time of writing it showed driver version 440.64 and CUDA version 10.2. Anaconda comes first of all, through a shell command in which the downloaded installer name is left as a placeholder, so the opening step is not copy and paste. Only after the driver answers does the reader create the conda environment named packt and clone the repository into a directory of their own choosing.

Pip requirements, two apt packages, and one MNIST smoke test

With the driver responding, the Python side is three commands. requirements.txt covers what the scripts import, and two system packages follow from apt because pip cannot supply them. Then there is one check worth running before touching a GAN: the first chapter script, invoked with python3 and no arguments.

bash
pip install -r requirements.txt
sudo apt-get install python-pydot
sudo apt-get install ffmpeg
bash
cd chapter1-keras-quick-tour
python3 mlp-mnist-1.3.2.py

The README reports about 98.2% accuracy on the MNIST test dataset as the final output of that run. One repair path is documented for a machine where the GPU stack is broken: when the TensorFlow import cannot load or find libcudart.so.10.X, the README asks you to remove tensorflow-gpu first and reinstall it from the anaconda conda channel, which brings TensorFlow and the CUDA libraries in together rather than matching driver to library by hand.

Fourteen dependencies with no version constraints anywhere

requirements.txt is fourteen lines long, and not one line carries a version. The list runs numpy, scipy, Pillow, matplotlib, scikit-image, tensorflow-gpu, h5py, graphviz, pydot, pydot_ng, tensorflow-addons, termcolor, gym and tensorflow-probability. Three details deserve attention. First, tensorflow-gpu is the very package the repair path tells you to uninstall, so a fresh environment and a fixed one disagree about which package owns the GPU build. Second, the plotting bridge arrives three ways: the python-pydot apt package, then both pydot and pydot_ng in pip, with the Python graphviz package listed as well and no command anywhere for installing graphviz itself. Third, gym and tensorflow-probability sit in the same flat list, so nothing in the file tells you which chapter folder expects them. Without pins, an install resolves to whatever the channels serve at that moment rather than to the combination the README tested. The last push was on 2026-03-02, and the code is MIT licensed.

The README stops inside chapter five while the tree runs to thirteen

The README text is cut off mid-entry. Its last line introduces the Auxiliary Classifier GAN and ends there, so everything past chapter 5 exists only as a directory name: chapter6-disentangled-gan, chapter7-cross-domain-gan, chapter8-vae, chapter9-drl, chapter10-policy, chapter11-detection, chapter12-segmentation and chapter13-mi-unsupervised. The chapter listing that does survive follows one pattern, a script path per item with an arXiv link underneath, visible in dcgan-mnist-4.2.1.py, cgan-mnist-4.3.1.py, wgan-mnist-5.1.2.py and lsgan-mnist-5.2.1.py. The book description fills part of the gap, naming new chapters on object detection with SSD and semantic segmentation with FCN and PSPNet, which line up with chapter11-detection and chapter12-segmentation, plus unsupervised learning through mutual information, which lines up with chapter13-mi-unsupervised. That correspondence comes from folder names alone, since the README confirms no scripts, no extra dependencies and no run times for those eight directories.

Keras in the repository name, TensorFlow 2 in the requirements

Three labels describe the same thing and none of them matches the others. The repository slug and its one-line description say Keras, while the README title says Advanced Deep Learning with TensorFlow 2 and Keras, marked as updated for the 2nd Edition. That README also states that the code examples have been updated to support TensorFlow 2.0 Keras API only, yet the install guide beneath it builds an environment around tensorflow-gpu on Ubuntu 18.04 LTS with CUDA 10.2, and the troubleshooting paragraph concerns a missing libcudart.so.10.X runtime. No file states a TensorFlow version, so nothing in the repository lets you confirm that the 2.0 API claim and the driver guide describe the same runtime. The README likewise documents no route for a host that already ships a newer CUDA runtime, where the loader error it names would not appear at all.

What the book codebase cannot replace in a working stack

Decide what you are opening it for. As a companion to reading, it holds up: standalone scripts, one dataset each, and an MNIST run that finishes in a documented way. As code to build on, it stops short, because nothing here is a library, no script documents a command line flag, and the only smoke test runs python3 on a file with no arguments. For reinforcement learning the README points elsewhere on its own: Deep Reinforcement Learning Hands-On and Reinforcement Learning with TensorFlow are linked as separate titles, and no script under chapter9-drl or chapter10-policy is named anywhere in this repository. For the Keras fundamentals that chapters 1 and 2 cover, the same list offers Deep Learning with Keras. That is the honest trade: a codebase held at one driver version and one CUDA runtime, usable as reading material beside a current API reference rather than as a stack that installs cleanly on a modern machine.

Editorial conclusion

Adopt this repository as reading material for one specific book, not as a dependency. It suits a reader working through the autoencoder and GAN chapters who wants runnable MNIST and CIFAR10 scripts; it does not suit anyone needing a supported library, a pinned environment, or a documented path past chapter five. Before starting, confirm your NVIDIA driver can supply the CUDA 10.2 runtime the README expects, and expect pip to resolve every requirement to whatever the channels serve at install time.

Frequently asked questions

Does Advanced Deep Learning with Keras install as a Python package?

No. The repository has no package to import, only thirteen chapter directories, a lib/ folder and requirements.txt. Each script is run directly with python3 from inside its own chapter directory.

What GPU does Advanced Deep Learning with Keras need?

A machine with at least 1 NVIDIA GPU, 1060 or better. The README reports the examples tested on 1060, 1080Ti, RTX 2080Ti, V100 and RTX Quadro 8000 on Ubuntu 18.04 LTS, with driver version 440.64 and CUDA version 10.2 shown by nvidia-smi.

How do I verify the setup in Advanced Deep Learning with Keras?

Change into chapter1-keras-quick-tour and run python3 mlp-mnist-1.3.2.py. The README gives about 98.2% accuracy on the MNIST test dataset as the expected final output.

Why does the TensorFlow import fail with libcudart.so.10.X in Advanced Deep Learning with Keras?

The README treats it as a CUDA library mismatch and gives a conda route instead: pip uninstall tensorflow-gpu, then conda install -c anaconda tensorflow-gpu, which installs TensorFlow and the CUDA libraries together.

Does Advanced Deep Learning with Keras pin its TensorFlow version?

No. requirements.txt lists fourteen packages including tensorflow-gpu with no version constraints, and the README asks for the TensorFlow 2.0 Keras API without naming a TensorFlow release.

Which chapters in Advanced Deep Learning with Keras have no README entry?

Eight of them. The README ends inside the Auxiliary Classifier GAN item for chapter5-improved-gan, so chapter6-disentangled-gan through chapter13-mi-unsupervised are known only by their directory names.

Official sources

  1. Issues
  2. License: MIT
  3. PacktPublishing/Advanced-Deep-Learning-with-Keras on GitHub
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/packtpublishing-advanced-deep-learning-with-keras.svg)](https://hysenlabs.com/projects/packtpublishing-advanced-deep-learning-with-keras)

Was this useful?