Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update 2.0 public api in paddle.init #32034

Merged
merged 2 commits into from
Apr 27, 2021
Merged

update 2.0 public api in paddle.init #32034

merged 2 commits into from
Apr 27, 2021

Conversation

zhiboniu
Copy link
Contributor

@zhiboniu zhiboniu commented Apr 2, 2021

PR types

Others

PR changes

APIs

Describe

update 2.0 public api in paddle.init

背景:
对于用户调用api的层级,由于之前没有明确的设计,api开放层级比较随意。影响用户使用中的逻辑和正规感受。
目的:
1)重新整理api开放层级,提升用户使用感受
2)API保留自有特色,同时更好地符合行业规范,降低用户学习成本
3)提高框架api逻辑性,便于后续维护和优化
主要实现方法:
1)__all__内容清晰化,内容逐个列出,一行一个。不再使用 all 的向上传递机制,仅在公开API层级添加 all,其余的 all 列表统一置空
2)不再使用 #DEFINE_ALIAS
3)导入内容清晰化,原则上不再使用 import *, 按需引入需要的API, 每行一个
4)原则上不再使用 from . import module, from .module import submodule时会引入module,避免重复引用
5)添加新的Public API时,需向上寻找到最近的节点添加 import 并加入 all 列表
6)Public API列表由多个公开API层级的 all 列表共同组成,文档抽取以此为准,这些指定层级是:

  • paddle
  • paddle.amp
  • paddle.nn
  • paddle.nn.functional
  • paddle.nn.initializer
  • paddle.nn.utils
  • paddle.static
  • paddle.static.nn
  • paddle.io
  • paddle.jit
  • paddle.metric
  • paddle.distribution
  • paddle.optimizer
  • paddle.optimizer.lr
  • paddle.regularizer
  • paddle.text
  • paddle.vision
  • paddle.callbacks
  • paddle.distributed
  • paddle.distributed.fleet
  • paddle.distributed.fleet.base.distributed_strategy
  • paddle.distributed.fleet.data_generator
  • paddle.distributed.fleet.utils
  • paddle.distributed.parallel
  • paddle.distributed.utils
  • paddle.sysconfig
  • paddle.utils
  • paddle.utils.download
  • paddle.utils.profiler
    修改示例展示:
    原来写法:
    image
    新的写法:
    image

对开发者使用API的影响:
在指定层级推荐方式:(不受影响)
from paddle.nn import CTCLoss
from paddle.nn import Conv2D
非指定层级支持但不推荐:(不受影响)
from paddle.nn.layer.loss import CTCLoss
from paddle.nn.layer.conv import Conv2D
对于import *使用方式不推荐。(非公开层级受影响)
不再支持:(非公开层级)
from paddle.nn.layer import *
from paddle.nn.layer.conv import *
from paddle.nn.initializer.norm import *
from paddle.tensor.math import *
from paddle.optimizer.adam import *
可以支持:(公开层级)
from paddle import *
from paddle.nn import *
from paddle.utils import *
from paddle.optimizer import *

本pr涉及到的api改动:
以下项属于模块文件,非底层api,在__all__中移除:
"device",
"autograd",
"monkey_patch_math_varbase",
"onnx",
"tensor",
"optimizer",
"reader",
"standard_normal",
"jit",
"distribution",
"regularizer",
"framework",
"utils",
"fluid",
"amp",
"paddle",
"version",
"compat",
"hapi",
"static",
"metric",
"vision",
"common_ops_import",
"text",
"sysconfig",
"dataset",
"incubate",
"nn",
"monkey_patch_variable",
"distributed",
"os",
"io"

@paddle-bot-old
Copy link

paddle-bot-old bot commented Apr 2, 2021

Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.

@zhiboniu zhiboniu changed the title Pubapi paddle update 2.0 public api in paddle.init Apr 2, 2021
jzhang533
jzhang533 previously approved these changes Apr 26, 2021
Copy link
Contributor

@jzhang533 jzhang533 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

XiaoguangHu01
XiaoguangHu01 previously approved these changes Apr 26, 2021
Copy link
Contributor

@XiaoguangHu01 XiaoguangHu01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

zhiqiu
zhiqiu previously approved these changes Apr 26, 2021
Copy link
Contributor

@zhiqiu zhiqiu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@phlrain phlrain self-requested a review April 26, 2021 11:50
phlrain
phlrain previously approved these changes Apr 26, 2021
willthefrog
willthefrog previously approved these changes Apr 26, 2021
Copy link
Contributor

@willthefrog willthefrog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@XiaoguangHu01 XiaoguangHu01 dismissed stale reviews from willthefrog, phlrain, zhiqiu, jzhang533, and themself via 2825f66 April 27, 2021 01:53
Copy link
Contributor

@XiaoguangHu01 XiaoguangHu01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@jzhang533 jzhang533 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@phlrain phlrain self-requested a review April 27, 2021 08:45
@XiaoguangHu01 XiaoguangHu01 merged commit 125e481 into PaddlePaddle:develop Apr 27, 2021
XiaoguangHu01 added a commit that referenced this pull request Apr 28, 2021
Co-authored-by: XiaoguangHu <46782768+XiaoguangHu01@users.noreply.github.com>

Co-authored-by: XiaoguangHu <46782768+XiaoguangHu01@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants