原文:

https://pytorch.org/docs/stable/community/design.html

PyTorch设计哲学总结

设计原则

  1. 可用性优先于性能 (usability over everything else)
    • PyTorch的主要目标是可用性,次要目标是合理的性能。
    • 避免过早实施严格的用户限制,以保持灵活性,支持构建在PyTorch抽象之上的研究人员。
    • PyTorch以可用性为先,避免过早采用限制性规则,以确保用户体验的完整性和灵活性。
  2. 简单胜于易用
    • PyTorch倾向于提供简单和明确的构建模块,而不是易于使用的API。
    • 明确比隐式更好,简单比复杂更好。
    • 通过暴露简单和明确的构建模块,PyTorch帮助新用户更容易理解和调试代码。
  3. Python优先,具有最佳语言互操作性
    • PyTorch深度集成于Python,使其能够自然地与Python库进行交互。
    • 尽管存在Python开销,但在Python中工作为用户提供了最佳体验。
    • PyTorch致力于在Python易用性端接近帕累托最优点,以满足用户需求。

这些设计原则不是硬性规则,而是经过艰难选择的决策,塑造了PyTorch成为今天可调试、可定制和灵活的框架。随着贡献者和维护者的增多,我们期待与您共同应用这些核心原则,推动我们的库和生态系统。同时,我们也愿意根据学习和人工智能领域的发展不断演进这些原则。

每轮step,DAG计算图都是重新连接的!好处:可以用if来灵活改变图结构

DAGs are dynamic in PyTorch An important thing to note is that the graph is recreated from scratch; after each .backward() call, autograd starts populating a new graph. This is exactly what allows you to use control flow statements in your model; you can change the shape, size and operations at every iteration if needed.

Logo

免费领 200 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐