Metadata-Version: 2.4
Name: pyd2l
Version: 1.0.1
Summary: Extension of d2l (Dive into Deep Learning) for newer PyTorch compatibility
Home-page: https://d2l.ai
Author: A student in ML
License: MIT-0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.5
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: matplotlib
Requires-Dist: requests
Requires-Dist: Pillow
Requires-Dist: torch
Requires-Dist: torchvision
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# pyd2l

**pyd2l** 是 [《动手学深度学习》](https://d2l.ai)（Dive into Deep Learning，d2l）库的扩展包，专注于解决在新版 PyTorch 环境下的 ABI 与环境适配问题，使书中代码在各类版本组合下都能顺畅安装、运行而不报错。

## 为什么需要 pyd2l

原始 `d2l` 包在 `install_requires` 中锁定了较旧的依赖版本（如 `numpy==1.24`、`matplotlib==3.5.1`、`pandas==1.2.4` 等），这会导致：

- 在较新的 Python / PyTorch / NumPy 环境下安装时产生版本冲突
- 与用户已有的新版科学计算栈不兼容
- 因 ABI 不匹配（尤其涉及编译扩展的包）而报错

`pyd2l` 通过**解除版本锁**来最大化环境兼容性：所有依赖均不锁定版本号，pip 不会覆盖用户已安装的包，从而适配尽可能多的版本组合。

## 安装

```bash
pip install pyd2l
```

如果你已经装好 PyTorch（含对应的 CUDA / CPU 版本），pyd2l 不会覆盖它——它只确保其余依赖（numpy、pandas、matplotlib 等）就位。

## 使用方法

pyd2l 的 API 与 `d2l.torch` 完全一致，可作为直接替代：

```python
from pyd2l import torch as d2l

d2l.use_svg_display()
d2l.set_figsize((6, 4))

# 与书中示例相同的调用方式
X = d2l.tensor([1.0, 2.0, 3.0])
print(d2l.numpy(X))
```

所有 `d2l.torch` 中的函数（`DATA_HUB`、`DATA_URL`、`plot`、`Timer`、`Accumulator`、`Animator`、训练循环工具等）均可在 pyd2l 中以相同方式调用。

## 与 d2l 的关系

| | d2l | pyd2l |
|---|---|---|
| 依赖版本 | 锁定旧版 | 不锁定，自适应 |
| PyTorch 适配 | 面向旧版 torch | 面向新版 torch |
| 安装冲突 | 常见 | 已缓解 |
| API | — | 完全兼容 d2l.torch |

pyd2l 在 d2l 的基础上扩展开发，保留了原库全部功能，重点改进了环境适配能力。

## 依赖

以下依赖均**不锁定版本**，由用户的运行环境决定：

- `torch`
- `torchvision`
- `numpy`
- `pandas`
- `matplotlib`
- `requests`
- `Pillow`

## 许可证

MIT-0（MIT No Attribution），与 d2l 代码部分一致。
