Skip to content
zhuoshui-AIPublic

About

Extension of d2l (Dive into Deep Learning) for newer PyTorch compatibility, unpinned dependencies for maximum environment compatibility

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

pyd2l

pyd2l 是 《动手学深度学习》(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 不会覆盖用户已安装的包,从而适配尽可能多的版本组合。

安装

pip install pyd2l

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

使用方法

pyd2l 的 API 与 d2l.torch 完全一致,可作为直接替代:

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 代码部分一致。

About

Extension of d2l (Dive into Deep Learning) for newer PyTorch compatibility, unpinned dependencies for maximum environment compatibility

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages