T81-558: Washington University's Keras Deep Learning Course in Jupyter Notebooks
T81-558: Keras - Applications of Deep Neural Networks @Washington University in St. Louis
At a glance
- What is it?
- T81-558 is Jeff Heaton's Washington University in St. Louis course on deep neural networks, delivered as a public GitHub repository of Jupyter notebooks covering Keras and TensorFlow. The Keras edition is now superseded at the university by a PyTorch version, but the material remains a structured introduction to CNN, LSTM, GAN, and reinforcement learning for anyone who prefers the TensorFlow ecosystem.
- Who is it for?
- Engineers or students who want a structured, university-level introduction to Keras and TensorFlow will find the 14-module sequence self-contained and practical. Those who want the current Washington University curriculum should go to the PyTorch repository instead.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 159 days ago.
- What is it written in?
- Mainly Jupyter Notebook, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A University Course Taught Through a Public Git Repository
T81-558 is a graduate-level course at Washington University in St. Louis taught by Jeff Heaton. The course materials live entirely in a public GitHub repository and are freely accessible to anyone. The repository contains one Jupyter notebook per course part, grouped into 14 modules that follow the semester schedule. The same material is available in print as "Applications of Deep Neural Networks with Keras" (ISBN 9798416344269), so readers who prefer a book can use both in parallel.
The course description states that students learn how neural networks handle tabular data, images, text, and audio as both input and output. The pedagogical approach is practical: mathematical foundations are introduced only where needed to make implementation choices comprehensible. Most instruction time goes to writing and running code, not to deriving gradients.
Current students enrolled at Washington University are directed to a separate repository for the PyTorch version of the course. This repository preserves the Keras and TensorFlow edition from Spring 2023 and earlier semesters. The last recorded push to the repository was on 2026-04-25, which means the material continues to receive minor updates even though the university has moved to a different framework.
Module Structure: From Python Basics to Reinforcement Learning
The 14 modules proceed in a deliberate order. Modules 1 and 2 cover Python fundamentals and Pandas, because the course assumes familiarity with at least one programming language but not necessarily Python. Module 3 introduces TensorFlow and Keras directly: saving and loading models, early stopping to prevent overfitting, and inspecting weight tensors. This sequence means a learner who has never touched Python can reach a working neural network by the end of the third module without any detours.
Modules 4 and 5 address training for tabular data, covering backpropagation, ADAM, regularization techniques (L1, L2, dropout), and k-fold cross validation. Module 6 moves to computer vision with convolutional networks, pretrained models, and YOLOv5 for multi-object detection. Modules 7 and 8 cover generative adversarial networks and Kaggle-style competition workflows, including hyperparameter tuning.
The later modules cover LSTM, GRU, and time-series applications (Module 9 and onward), natural language processing, and reinforcement learning. The last module addresses high-performance computing, including GPU training and grid-based scaling. The repository contains a separate assignments/ directory with submission templates named by module, so the instructional notebooks and the graded exercises are easy to distinguish.
Setting Up the Keras Environment
Clone the repository to get all notebooks and the Conda environment file:
git clone https://github.com/jeffheaton/t81_558_deep_learning.gitThe repository ships an environment.yml file for Conda-based setup. The README points to an install/ directory and a manual_setup.ipynb notebook for users who prefer a step-by-step walkthrough rather than the automated Conda path. The course notebooks themselves do not include pip or conda invocations inline; the expectation is that the environment is configured before the first notebook runs.
A separate pytorch/ directory is present in the repository, indicating that some PyTorch material was added during the transition period. The main sequence of notebooks, prefixed t81_558_class_, still targets TensorFlow and Keras. Because the course was delivered as a hybrid with both in-person and online sections, every notebook is designed to run independently on Google Colab as well as on a local GPU machine.
The course material is citable via an arXiv paper, "Applications of Deep Neural Networks" (arXiv:2009.05673), authored by Jeff Heaton and dated 2020. The README provides this as the canonical reference for academic work rather than citing the GitHub URL directly.
Coverage of GANs, Transformers, and NLP
Module 7 covers generative adversarial networks in more depth than most introductory courses. The syllabus lists five parts: an introduction to GANs, training StyleGAN3 on custom images, exploring the StyleGAN latent vector, enhancing old photographs with DeOldify, and generating tabular synthetic data. This progression goes from conceptual overview to a concrete StyleGAN3 training workflow, which requires GPU access and is one of the more computationally demanding sections.
Natural language processing appears later in the course. The syllabus covers transformer architectures and their application to text classification and sequence-to-sequence tasks using Keras. The README does not document which specific Transformer variant or tokenizer version the notebooks target, so learners running the NLP notebooks on a current TensorFlow installation may encounter API differences if the TF version in environment.yml differs from what is installed.
The reinforcement learning module introduces the concept through game environments. The README does not specify which environment library (OpenAI Gym or another) is used, and that toolchain has changed significantly since Spring 2023. A learner who attempts the reinforcement learning notebooks without matching the original environment may need to adapt the dependency calls.
Limitations of the Keras Edition
The most significant limitation is the deprecation notice in the README itself: Washington University now teaches T81-558 using PyTorch, and the Keras/TensorFlow content is the previous version. Learners who intend to match the current university curriculum should use the PyTorch repository instead. The Keras material still has educational value, but its examples will not match what current students see in class.
TensorFlow and Keras have themselves undergone API changes since the Spring 2023 semester. The environment.yml pins dependencies, but if those pins are satisfied by versions that Conda resolves differently on a current system, some notebook cells may produce deprecation warnings or fail outright. The README does not document known breaking changes between the pinned versions and current TensorFlow releases.
The course also assumes access to a GPU for several modules, particularly the GAN training and computer vision sections. The README notes that high-performance computing is covered, but does not provide a CPU-only fallback for the computationally intensive modules. Learners on machines without a suitable GPU will need to use Google Colab or a cloud GPU instance.
Finally, the course assignments are structured around specific due dates from the Spring 2023 semester. Self-learners have no submission mechanism and no autograder, so they must evaluate their own work against the assignment notebooks.
Comparison with Fast.ai and the Current PyTorch Repository
Fast.ai offers a competing open-source deep learning course that also uses Jupyter notebooks and targets practitioners rather than theorists. The key difference in approach is that Fast.ai starts from pretrained models and works backward to fundamentals, while T81-558 builds from Python basics and Pandas forward through each architecture type. T81-558 spends more time on tabular data and traditional Keras patterns, which makes it a better fit for learners coming from a data science background who want to add neural networks to an existing skill set.
The current PyTorch version of the same course, maintained separately by Jeff Heaton, reflects what Washington University now teaches. It covers the same problem domains but uses PyTorch's module-based API. A learner choosing between the two repositories should prefer the PyTorch version for alignment with current industry tooling. The Keras version is the better choice when a project or employer already uses TensorFlow 2.x and Keras, or when a learner specifically needs Keras-based examples they can copy directly.
Editorial conclusion
Engineers or students who want a structured, university-level introduction to Keras and TensorFlow will find the 14-module sequence self-contained and practical. Those who want the current Washington University curriculum should go to the PyTorch repository instead. Before starting, verify that the environment.yml installs cleanly into a compatible Python environment, because the notebooks target the TensorFlow version from the Spring 2023 semester.
Frequently asked questions
Is deep learning very difficult?
The course is designed for students who know at least one programming language but not necessarily Python or neural networks. The first two modules cover Python and Pandas before any neural network code appears, which lowers the entry barrier. The mathematical depth is kept at a level sufficient for implementation, not for research.
What are the three types of deep learning?
The T81-558 course covers convolutional neural networks for image tasks, recurrent architectures (LSTM and GRU) for sequence data, and generative adversarial networks for data generation. The course also includes reinforcement learning and transformer-based NLP, extending the scope beyond those three categories.
Is ChatGPT a deep learning model?
The README does not address ChatGPT directly. The course covers transformer architectures in its NLP module, which is the family of models that large language models are built on, but the course does not cover the RLHF training process or the specific scale at which GPT-class models operate.
Is deep learning still a thing?
The T81-558 repository received its most recent push on 2026-04-25, and the course covers architectures including CNNs, LSTMs, GANs, and transformers that remain in active use. Washington University continues to offer the course under the same number, though the current semester uses the PyTorch version of the material.
Official sources
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.
[](https://hysenlabs.com/projects/jeffheaton-t81-558-deep-learning)