AI-For-Beginners

Tutorial

microsoft/AI-For-Beginners

12-week AI curriculum for beginners with lessons, quizzes, and labs.

Overview

A comprehensive 12-week, 24-lesson curriculum covering AI fundamentals including neural networks, computer vision, NLP, and ethics. Uses TensorFlow and PyTorch with practical labs and quizzes. Multi-language support.

README Preview

[](https://github.com/microsoft/AI-For-Beginners/blob/main/LICENSE)\n[](https://GitHub.com/microsoft/AI-For-Beginners/graphs/contributors/)\n[](https://GitHub.com/microsoft/AI-For-Beginners/issues/)\n[](https://GitHub.com/microsoft/AI-For-Beginners/pulls/)\n[](http://makeapullrequest.com)\n\n[](https://GitHub.com/microsoft/AI-For-Beginners/watchers/)\n[](https://GitHub.com/microsoft/AI-For-Beginners/network/)\n[](https://GitHub.com/microsoft/AI-For-Beginners/stargazers/)\n[](https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD)\n[](https://gitter.im/Microsoft/ai-for-beginners?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)\n\n[](https://discord.gg/nTYy5BXMWG)\n\n# Artificial Intelligence for Beginners - A Curriculum\n\n||\n|:---:|\n| AI For Beginners - _Sketchnote by [@girlie_mac](https://twitter.com/girlie_mac)_ |\n\nExplore the world of **Artificial Intelligence** (AI) with our 12-week, 24-lesson curriculum!  It includes practical lessons, quizzes, and labs. The curriculum is beginner-friendly and covers tools like TensorFlow and PyTorch, as well as ethics in AI\n\n\n### 🌐 Multi-Language Support\n\n#### Supported via GitHub Action (Automated & Always Up-to-Date)\n\n\n[Arabic](./translations/ar/README.md) | [Bengali](./translations/bn/README.md) | [Bulgarian](./translations/bg/README.md) | [Burmese (Myanmar)](./translations/my/README.md) | [Chinese (Simplified)](./translations/zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](./translations/zh-HK/README.md) | [Chinese (Traditional, Macau)](./translations/zh-MO/README.md) | [Chinese (Traditional, Taiwan)](./translations/zh-TW/README.md) | [Croatian](./translations/hr/README.md) | [Czech](./translations/cs/README.md) | [Danish](./translations/da/README.md) | [Dutch](./translations/nl/README.md) | [Estonian](./translations/et/README.md) | [Finnish](./translations/fi/README.md) | [French](./translations/fr/README.md) | [German](./translations/de/README.md) | [Greek](./translations/el/README.md) | [H

FAQ (5)

Troubleshooting
How to fix matplotlib "TypeError: Axes.plot() got an unexpected keyword argument 's'" when plotting positive and negative examples?

plot() does not support the scatter-size parameter s. Replace ax.plot() with ax.scatter() and specify colors with c:

ax1.scatter(pos_examples[:, 0], pos_examples[:, 1],
            c='blue', marker='o', label='Positive', s=100, alpha=0.6)
ax1.scatter(neg_examples[:, 0], neg_examples[:, 1],
            c='red', marker='o', label='Negative', s=100, alpha=0.6)

Do not use the 'bo'/'ro' format strings with scatter(); use c='blue' and c='red' instead.

GitHub Issue #726
Troubleshooting
Why is the Tamil translation showing Hindi words, and how do I fix it?

This is caused by residual machine-translated Hindi (Devanagari) text committed under the Tamil locale. Audit the Tamil files with rg '[\x{0900}-\x{097F}]' translations/ta/, replace every Hindi span with the correct Tamil equivalent based on the English source, and restore translations/ta/README.md if it contains Hindi sections. The fix is covered by the PRs "fix(translations): replace residual Hindi words in Tamil lessons" and "fix: restore Tamil README translation" (Fixes #734). As a temporary workaround, use the English version or manually remove the Devanagari text from the affected Tamil Markdown files.

GitHub Issue #734
Troubleshooting
How do I fix bare except clauses that catch SystemExit and KeyboardInterrupt in Python image validation?

Replace every bare except: with except Exception: so only normal application exceptions are caught while system-level exceptions propagate. Update these four files:

- lessons/4-ComputerVision/07-ConvNets/tfcv.py (line 51)
- lessons/4-ComputerVision/07-ConvNets/pytorchcv.py (line 137)
- lessons/4-ComputerVision/08-TransferLearning/tfcv.py (line 51)
- lessons/4-ComputerVision/08-TransferLearning/pytorchcv.py (line 137)

Example fix:

def check_image(fn):
    try:
        im = Image.open(fn)
        im.verify()
        return True
    except Exception:
        return False

This follows PEP 8 and prevents KeyboardInterrupt, SystemExit, and other critical exceptions from being silently masked.

GitHub Issue #707
Troubleshooting
How do you fix the incorrect delta p formula in the OwnFramework backpropagation lesson?

The formula should use the chain rule with partial derivatives, not a finite change in the loss. If p is a parameter, z the layer output, and L the loss, use:

∂L/∂p = ∂L/∂z · ∂z/∂p

Here, ∂L/∂z is the upstream gradient from the next layer and ∂z/∂p is the local gradient. Do not multiply by ΔL, the actual change in loss, or treat a finite-loss change as a gradient.

For a linear layer z = Wx + b, the gradients are:

∂L/∂W = ∂L/∂z · xᵀ
∂L/∂b = ∂L/∂z
∂L/∂x = Wᵀ · ∂L/∂z

Keep the optimizer update separate:

p_new = p - learning_rate · ∂L/∂p

Pull the latest version of OwnFramework.ipynb or replace the erroneous δp equation with the chain-rule expression above. The corrected notebook also fixes the obtanes typo and uses consistent p and z partial-derivative notation.

GitHub Issue #730
Troubleshooting
How to fix the Tamil translation showing Hindi text in the README?

The issue was caused by the Tamil (ta) README containing Hindi/Devanagari content. It was fixed by restoring the Tamil-language README at translations/ta/README.md. After updating, verify the file contains Tamil script and no Devanagari characters; the fix reported 102 Tamil-script lines and 0 Devanagari lines. Pull the latest changes or apply PR fix(ta): restore Tamil translation in README. Report remaining translation issues at https://github.com/Azure/co-op-translator.

GitHub Issue #706