From 81b116ba02f1699ad960c2c0ff4bb775208e9a1e Mon Sep 17 00:00:00 2001 From: enkilee Date: Sun, 25 Jun 2023 11:07:24 +0800 Subject: [PATCH 01/11] fix --- docs/api/paddle/static/InputSpec_cn.rst | 45 +-- docs/api/paddle/static/Program_cn.rst | 328 +------------------- docs/api/paddle/static/Variable_cn.rst | 114 +------ docs/api/paddle/static/nn/cond_cn.rst | 50 +-- docs/api/paddle/static/program_guard_cn.rst | 21 +- 5 files changed, 38 insertions(+), 520 deletions(-) diff --git a/docs/api/paddle/static/InputSpec_cn.rst b/docs/api/paddle/static/InputSpec_cn.rst index bc06b1494f7..092b5ed5d82 100644 --- a/docs/api/paddle/static/InputSpec_cn.rst +++ b/docs/api/paddle/static/InputSpec_cn.rst @@ -24,15 +24,7 @@ InputSpec 代码示例 :::::::::::: -.. code-block:: python - - from paddle.static import InputSpec - - input = InputSpec([None, 784], 'float32', 'x') - label = InputSpec([None, 1], 'int64', 'label') - print(input) # InputSpec(shape=(-1, 784), dtype=paddle.float32, name=x) - print(label) # InputSpec(shape=(-1, 1), dtype=paddle.int64, name=label) - +COPY-FROM: paddle.static.InputSpec:code-example1 方法 :::::::::::: @@ -53,15 +45,7 @@ from_tensor(tensor, name=None) **代码示例** -.. code-block:: python - - import numpy as np - import paddle - from paddle.static import InputSpec - - x = paddle.to_tensor(np.ones([2, 2], np.float32)) - x_spec = InputSpec.from_tensor(x, name='x') - print(x_spec) # InputSpec(shape=(2, 2), dtype=paddle.float32, name=x) +COPY-FROM: paddle.static.InputSpec:code-example2 from_numpy(ndarray, name=None) @@ -81,14 +65,7 @@ from_numpy(ndarray, name=None) **代码示例** -.. code-block:: python - - import numpy as np - from paddle.static import InputSpec - - x = np.ones([2, 2], np.float32) - x_spec = InputSpec.from_numpy(x, name='x') - print(x_spec) # InputSpec(shape=(2, 2), dtype=paddle.float32, name=x) +COPY-FROM: paddle.static.InputSpec:code-example3 batch(batch_size) @@ -106,13 +83,7 @@ batch(batch_size) **代码示例** -.. code-block:: python - - from paddle.static import InputSpec - - x_spec = InputSpec(shape=[64], dtype='float32', name='x') - x_spec.batch(4) - print(x_spec) # InputSpec(shape=(4, 64), dtype=paddle.float32, name=x) +COPY-FROM: paddle.static.InputSpec:code-example4 unbatch() @@ -127,10 +98,4 @@ unbatch() **代码示例** -.. code-block:: python - - from paddle.static import InputSpec - - x_spec = InputSpec(shape=[4, 64], dtype='float32', name='x') - x_spec.unbatch() - print(x_spec) # InputSpec(shape=(64,), dtype=paddle.float32, name=x) +COPY-FROM: paddle.static.InputSpec:code-example5 \ No newline at end of file diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index 0d1ca36c986..6e83d95d000 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -22,22 +22,7 @@ Program,创建的空的 Program。 代码示例 :::::::::: -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - main_program = static.Program() - startup_program = static.Program() - with static.program_guard(main_program=main_program, startup_program=startup_program): - x = static.data(name="x", shape=[-1, 784], dtype='float32') - y = static.data(name="y", shape=[-1, 1], dtype='int32') - z = static.nn.fc(name="fc", x=x, size=10, activation="relu") - - print("main program is: {}".format(main_program)) - print("start up program is: {}".format(startup_program)) +COPY-FROM: paddle.static.Program:code-example1 方法 @@ -59,20 +44,7 @@ str,由 Program 转换得到的字符串。 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - prog = static.default_main_program() - x = static.data(name="X", shape=[2,3], dtype="float32") - pred = static.nn.fc(x, size=3) - prog_string = prog.to_string(throw_on_error=True, with_details=False) - prog_string_with_details = prog.to_string(throw_on_error=False, with_details=True) - print("program string without detail: {}".format(prog_string)) - print("program string with detail: {}".format(prog_string_with_details)) +COPY-FROM: paddle.static.Program:code-example2 clone(for_test=False) ''''''''' @@ -91,20 +63,7 @@ clone(for_test=False) **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - img = static.data(name='image', shape=[None, 784]) - pred = static.nn.fc(x=img, size=10, activation='relu') - loss = paddle.mean(pred) - # Here we use clone before Momentum - test_program = static.default_main_program().clone(for_test=True) - optimizer = paddle.optimizer.Momentum(learning_rate=0.01, momentum=0.9) - optimizer.minimize(loss) +COPY-FROM: paddle.static.Program:code-example3 **参数** @@ -120,116 +79,15 @@ Program,当 ``for_test=True`` 时返回一个新的、仅包含当前 Program .. note:: Program 在 clone 后的顺序可能不同,这不会影响的训练或测试进程。在下面的示例中,我们提供了一个简单的方法 print_prog(Program)来打印程序描述,以确保 clone 后仍能得到同样的打印结果: -.. code-block:: python - - def print_prog(prog): - for name, value in sorted(prog.block(0).vars.items()): - print(value) - for op in prog.block(0).ops: - print("op type is {}".format(op.type)) - print("op inputs are {}".format(op.input_arg_names)) - print("op outputs are {}".format(op.output_arg_names)) - for key, value in sorted(op.all_attrs().items()): - if key not in ['op_callstack', 'op_role_var']: - print(" [ attrs: {}: {} ]".format(key, value)) +COPY-FROM: paddle.static.Program:code-example4 1. 克隆一个 Program,示例代码如下。 -.. code-block:: python - - import paddle - import paddle.static as static - import paddle.utils as utils - import paddle.nn.functional as F - - paddle.enable_static() - - def print_prog(prog): - for name, value in sorted(prog.block(0).vars.items()): - print(value) - for op in prog.block(0).ops: - print("op type is {}".format(op.type)) - print("op inputs are {}".format(op.input_arg_names)) - print("op outputs are {}".format(op.output_arg_names)) - for key, value in sorted(op.all_attrs().items()): - if key not in ['op_callstack', 'op_role_var']: - print(" [ attrs: {}: {} ]".format(key, value)) - - train_program = static.Program() - startup_program = static.Program() - - # startup_program is used to do some parameter init work, - # and main program is used to hold the network - with static.program_guard(train_program, startup_program): - with utils.unique_name.guard(): - img = static.data(name='image', shape=[None, 784]) - hidden = static.nn.fc(x=img, size=200, activation='relu') - hidden = F.dropout(hidden, p=0.5) - loss = F.cross_entropy( - input=static.nn.fc(x=hidden, size=10, activation='softmax'), - label=static.data(name='label', shape=[1], dtype='int64')) - avg_loss = paddle.mean(loss) - test_program = train_program.clone(for_test=True) - print_prog(test_program) - - # Due to parameter sharing usage for train and test, so we need to use startup program of train - # instead of using test startup program, while nothing is in test's startup program - - # In Paddle we will share weights by using the same Tensor name. In train and test program - # all parameters will have the same name and this can make train and test program sharing parameters, - # that's why we need to use startup program of train. And for startup program of test, it has nothing, - # since it is a new program. - - with static.program_guard(train_program, startup_program): - with utils.unique_name.guard(): - sgd = paddle.optimizer.SGD(learning_rate=1e-3) - sgd.minimize(avg_loss) +COPY-FROM: paddle.static.Program:code-example5 2. 如果分别运行 train Program 和 test Program,则可以不使用 clone。 -.. code-block:: python - - import paddle - import paddle.static as static - import paddle.utils as utils - import paddle.nn.functional as F - - paddle.enable_static() - - def print_prog(prog): - for name, value in sorted(prog.block(0).vars.items()): - print(value) - for op in prog.block(0).ops: - print("op type is {}".format(op.type)) - print("op inputs are {}".format(op.input_arg_names)) - print("op outputs are {}".format(op.output_arg_names)) - for key, value in sorted(op.all_attrs().items()): - if key not in ['op_callstack', 'op_role_var']: - print(" [ attrs: {}: {} ]".format(key, value)) - - def network(): - img = static.data(name='image', shape=[None, 784]) - hidden = static.nn.fc(x=img, size=200, activation='relu') - hidden = F.dropout(hidden, p=0.5) - loss = F.cross_entropy( - input=static.nn.fc(x=hidden, size=10, activation='softmax'), - label=static.data(name='label', shape=[1], dtype='int64')) - avg_loss = paddle.mean(loss) - return avg_loss - - train_program_2 = static.Program() - startup_program_2 = static.Program() - test_program_2 = static.Program() - with static.program_guard(train_program_2, startup_program_2): - with utils.unique_name.guard(): - avg_loss = network() - sgd = paddle.optimizer.SGD(learning_rate=1e-3) - sgd.minimize(avg_loss) - # the test startup program is not used. - with static.program_guard(test_program_2, startup_program_2): - with utils.unique_name.guard(): - avg_loss = network() - print_prog(test_program_2) +COPY-FROM: paddle.static.Program:code-example6 上边两个代码片段生成和打印的 Program 是一样的。 @@ -249,27 +107,7 @@ Program,反序列化后的 Program。 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - startup_prog = static.Program() - main_prog = static.Program() - with static.program_guard(startup_prog, main_prog): - x = static.data(name='X', shape=[1000, 784], dtype='float32') - - y = static.data(name='Y', shape=[784, 100], dtype='float32') - - z = paddle.matmul(x=x, y=y) - - binary_str = static.default_main_program().desc.serialize_to_string() - prog_restored = static.default_main_program().parse_from_string(binary_str) - - print(static.default_main_program()) - print(prog_restored) +COPY-FROM: paddle.static.Program:code-example7 属性 :::::::::::: @@ -284,19 +122,7 @@ int,该 Program 中的 :ref:`api_guide_Block` 的个数。 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - prog = static.default_main_program() - num_blocks = prog.num_blocks - print(num_blocks) - - # print result: - # 1 +COPY-FROM: paddle.static.Program:code-example8 random_seed ''''''''' @@ -312,28 +138,7 @@ int64,该 Program 中当前正在使用的 random seed。 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - import paddle.nn.functional as F - - paddle.enable_static() - - prog = static.default_main_program() - random_seed = prog.random_seed - x_var = static.data(name="X", shape=[3,3], dtype="float32") - print(random_seed) - ## 0 - ## the default random seed is 0 - - # Here we need to set random seed before we use paddle.nn.functional.dropout - prog.random_seed = 1 - z_var = F.dropout(x_var, 0.7) - - print(prog.random_seed) - ## 1 - ## the random seed is change to 1 +COPY-FROM: paddle.static.Program:code-example9 global_block() ''''''''' @@ -346,16 +151,7 @@ global_block() **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - prog = static.default_main_program() - gb_block = prog.global_block() - print(gb_block) +COPY-FROM: paddle.static.Program:code-example10 block(index) @@ -373,16 +169,7 @@ block(index) **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - prog = static.default_main_program() - block_0 = prog.block(0) - print(block_0) +COPY-FROM: paddle.static.Program:code-example11 current_block() ''''''''' @@ -395,16 +182,7 @@ current_block() **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - prog = static.default_main_program() - current_blk = prog.current_block() - print(current_blk) +COPY-FROM: paddle.static.Program:code-example12 list_vars() ''''''''' @@ -417,21 +195,7 @@ Generator,会 yield 每个 Program 中的变量。 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - prog = static.default_main_program() - img = static.data(name='img', shape=[None, 1,28,28], dtype='float32') - label = static.data(name='label', shape=[None,1], dtype='int64') - for var in prog.list_vars(): - print(var) - - # var img : LOD_TENSOR.shape(-1, 1, 28, 28).dtype(float32).stop_gradient(True) - # var label : LOD_TENSOR.shape(-1, 1).dtype(int64).stop_gradient(True) +COPY-FROM: paddle.static.Program:code-example13 all_parameters() ''''''''' @@ -444,31 +208,7 @@ list[ :ref:`api_guide_parameter` ],一个包含当前 Program 中所有参数 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - program = static.default_main_program() - data = static.data(name='x', shape=[None, 13], dtype='float32') - hidden = static.nn.fc(x=data, size=10) - loss = paddle.mean(hidden) - paddle.optimizer.SGD(learning_rate=0.01).minimize(loss) - - for param in program.all_parameters(): - print(param) - - # Here will print all parameters in current program, in this example, - # the result is like: - # - # persist trainable param fc_0.w_0 : LOD_TENSOR.shape(13, 10).dtype(float32).stop_gradient(False) - # persist trainable param fc_0.b_0 : LOD_TENSOR.shape(10,).dtype(float32).stop_gradient(False) - # - # Here print(param) will print out all the properties of a parameter, - # including name, type and persistable, you can access to specific - # property of a parameter, such as param.name, param.type +COPY-FROM: paddle.static.Program:code-example14 state_dict(mode='all', scope=None) ''''''''' @@ -486,24 +226,7 @@ dict,包含持久性变量的 dict,键值是持久性变量的名字,值 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - x = static.data(name="x", shape=[10, 10], dtype='float32') - y = static.nn.fc(x, 10) - z = static.nn.fc(y, 10) - - place = paddle.CPUPlace() - exe = static.Executor(place) - exe.run(static.default_startup_program()) - prog = static.default_main_program() - - path = "./temp/model.pdparams" - paddle.save(prog.state_dict(), path) +COPY-FROM: paddle.static.Program:code-example15 set_state_dict(state_dict, scope=None) ''''''''' @@ -521,23 +244,4 @@ set_state_dict(state_dict, scope=None) **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - - paddle.enable_static() - - x = static.data(name="x", shape=[10, 10], dtype='float32') - y = static.nn.fc(x, 10) - z = static.nn.fc(y, 10) - - place = paddle.CPUPlace() - exe = static.Executor(place) - exe.run(static.default_startup_program()) - prog = static.default_main_program() - - path = "./temp/model.pdparams" - paddle.save(prog.state_dict(), path) - state_dict_load = paddle.load(path) - prog.set_state_dict(state_dict_load) +COPY-FROM: paddle.static.Program:code-example16 diff --git a/docs/api/paddle/static/Variable_cn.rst b/docs/api/paddle/static/Variable_cn.rst index c43a0a7222b..c463ef38bd2 100644 --- a/docs/api/paddle/static/Variable_cn.rst +++ b/docs/api/paddle/static/Variable_cn.rst @@ -21,17 +21,7 @@ Variable 代码示例 :::::::::::: - .. code-block:: python - - import paddle - - paddle.enable_static() - - cur_program = paddle.static.Program() - cur_block = cur_program.current_block() - new_variable = cur_block.create_var(name="X", - shape=[-1, 23, 48], - dtype='float32') +COPY-FROM: paddle.static.Variable:code-example1 方法 :::::::::::: @@ -51,21 +41,7 @@ to_string(throw_on_error, with_details=True) **代码示例** - .. code-block:: python - - import paddle - - paddle.enable_static() - - cur_program = paddle.static.Program() - cur_block = cur_program.current_block() - new_variable = cur_block.create_var(name="X", - shape=[-1, 23, 48], - dtype='float32') - - print(new_variable.to_string(True)) - print("\n=============with detail===============\n") - print(new_variable.to_string(True, True)) +COPY-FROM: paddle.static.Variable:code-example2 clone(self) @@ -78,17 +54,7 @@ clone(self) 复制的新 ``Variable``。 **代码示例** - .. code-block:: python - - import paddle - - paddle.enable_static() - - # create a static Variable - x = paddle.static.data(name='x', shape=[3, 2, 1]) - - # create a cloned Variable - y = x.clone() +COPY-FROM: paddle.static.Variable:code-example3 detach(self) @@ -101,7 +67,7 @@ detach(self) 与当前计算图分离的 ``Variable``。 **代码示例** -COPY-FROM: paddle.static.Variable.detach +COPY-FROM: paddle.static.Variable:code-example4 astype(self, dtype) @@ -121,18 +87,7 @@ astype(self, dtype) **代码示例** - .. code-block:: python - - import paddle - - paddle.enable_static() - - startup_prog = paddle.static.Program() - main_prog = paddle.static.Program() - with paddle.static.program_guard(startup_prog, main_prog): - original_variable = paddle.static.data(name = "new_variable", shape=[2,2], dtype='float32') - new_variable = original_variable.astype('int64') - print("new var's dtype is: {}".format(new_variable.dtype)) +COPY-FROM: paddle.static.Variable:code-example5 get_value(scope=None) @@ -150,33 +105,8 @@ Tensor, :ref:`api_guide_Variable` 的值。 **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - import numpy as np - - paddle.enable_static() - - x = static.data(name="x", shape=[10, 10], dtype='float32') - - y = static.nn.fc(x, 10, name='fc') - place = paddle.CPUPlace() - exe = static.Executor(place) - prog = paddle.static.default_main_program() - exe.run(static.default_startup_program()) - inputs = np.ones((10, 10), dtype='float32') - exe.run(prog, feed={'x': inputs}, fetch_list=[y, ]) - path = 'temp/tensor_' - for var in prog.list_vars(): - if var.persistable: - t = var.get_value() - paddle.save(t, path+var.name+'.pdtensor') - - for var in prog.list_vars(): - if var.persistable: - t_load = paddle.load(path+var.name+'.pdtensor') - var.set_value(t_load) +**代码示例** +COPY-FROM: paddle.static.Variable:code-example6 set_value(value, scope=None) @@ -195,33 +125,7 @@ set_value(value, scope=None) **代码示例** -.. code-block:: python - - import paddle - import paddle.static as static - import numpy as np - - paddle.enable_static() - - x = static.data(name="x", shape=[10, 10], dtype='float32') - - y = static.nn.fc(x, 10, name='fc') - place = paddle.CPUPlace() - exe = static.Executor(place) - prog = paddle.static.default_main_program() - exe.run(static.default_startup_program()) - inputs = np.ones((10, 10), dtype='float32') - exe.run(prog, feed={'x': inputs}, fetch_list=[y, ]) - path = 'temp/tensor_' - for var in prog.list_vars(): - if var.persistable: - t = var.get_value() - paddle.save(t, path+var.name+'.pdtensor') - - for var in prog.list_vars(): - if var.persistable: - t_load = paddle.load(path+var.name+'.pdtensor') - var.set_value(t_load) +COPY-FROM: paddle.static.Variable:code-example7 size(self) @@ -235,7 +139,7 @@ size(self) **代码示例** -COPY-FROM: paddle.static.Variable.size +COPY-FROM: paddle.static.Variable:code-example8 ndimension(self) diff --git a/docs/api/paddle/static/nn/cond_cn.rst b/docs/api/paddle/static/nn/cond_cn.rst index 94d75065dd4..d3c13f280ca 100644 --- a/docs/api/paddle/static/nn/cond_cn.rst +++ b/docs/api/paddle/static/nn/cond_cn.rst @@ -4,7 +4,7 @@ cond ------------------------------- -.. py:function:: paddle.static.nn.cond(pred, true_fn=None, false_fn=None, name=None) +.. py:function:: paddle.static.nn.cond(pred, true_fn=None, false_fn=None, name=None, return_names=None) 如果 ``pred`` 是 ``True``,该 API 返回 ``true_fn()``,否则返回 ``false_fn()`` 。 @@ -18,23 +18,17 @@ PaddlePaddle 里 Tensor 的嵌套结构是指一个 Tensor,或者 Tensor 的 2. 本接口在动态图和静态图模式下都可以运行,在动态图情况下就只会按 ``pred`` 条件运行其中一支分支。 3. 静态图模式下,因为各个分支都要参与组网,因此不论运行哪个分支,在 ``true_fn`` 和 ``false_fn`` 内外创建的 Tensor 和 Op 都会组网,即 PaddlePaddle 并不是惰性语法(lazy semantics)。例如 - .. code-block:: python - - import paddle - - a = paddle.zeros((1, 1)) - b = paddle.zeros((1, 1)) - c = a * b - out = paddle.static.nn.cond(a < b, lambda: a + c, lambda: b * b) + COPY-FROM: paddle.static.nn.cond:code-example1 不管 ``a < b`` 是否成立,``c = a * b`` 都会被组网且运行,``a + c`` 和 ``b * b`` 都会参与组网,只是组网后运行时只会运行条件对应的分支。 参数 ::::::::: - **pred** (Tensor) - 一个元素个数为 1 的布尔型(boolean)的 Tensor ( 0-D Tensor 或者形状为 [1] ),该布尔值决定要返回 ``true_fn`` 还是 ``false_fn`` 的运行结果。 - - **true_fn** (callable) - 一个当 ``pred`` 是 ``True`` 时被调用的 callable,默认值:``None`` 。 - - **false_fn** (callable) - 一个当 ``pred`` 是 ``False`` 时被调用的 callable,默认值:``None`` 。 + - **true_fn** (callable) - 一个当 ``pred`` 是 ``True`` 时被调用的 callable,默认值: ``None`` 。 + - **false_fn** (callable) - 一个当 ``pred`` 是 ``False`` 时被调用的 callable,默认值: ``None`` 。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **return_names** (sequence of string,可选) - 通常情况下,用户不必设置此参数。字符串表示返回的变量的名称。序列的结构必须与 ``true_fn`` 和 ``false_fn`` 的返回值相同,默认值: ``None`` 。 返回 ::::::::: @@ -42,36 +36,4 @@ Tensor|list(Tensor)|tuple(Tensor),如果 ``pred`` 是 ``True``,该 API 返 代码示例 ::::::::: -.. code-block:: python - - import paddle - - # - # pseudocode: - # if 0.1 < 0.23: - # return 1, True - # else: - # return 3, 2 - # - - def true_func(): - return paddle.full(shape=[1, 2], dtype='int32', - fill_value=1), paddle.full(shape=[2, 3], - dtype='bool', - fill_value=True) - - - def false_func(): - return paddle.full(shape=[3, 4], dtype='float32', - fill_value=3), paddle.full(shape=[4, 5], - dtype='int64', - fill_value=2) - - x = paddle.full(shape=[1], dtype='float32', fill_value=0.1) - y = paddle.full(shape=[1], dtype='float32', fill_value=0.23) - pred = paddle.less_than(x=x, y=y, name=None) - ret = paddle.static.nn.cond(pred, true_func, false_func) - # ret 是包含两个 tensors 的元组 - # ret[0] = [[1 1]] - # ret[1] = [[ True True True] - # [ True True True]] +COPY-FROM: paddle.static.nn.cond:code-example2 diff --git a/docs/api/paddle/static/program_guard_cn.rst b/docs/api/paddle/static/program_guard_cn.rst index 69d81ac4c46..31fadf6d93c 100644 --- a/docs/api/paddle/static/program_guard_cn.rst +++ b/docs/api/paddle/static/program_guard_cn.rst @@ -22,28 +22,11 @@ program_guard 代码示例 1 :::::::::::: -.. code-block:: python - - import paddle - - paddle.enable_static() - main_program = paddle.static.Program() - startup_program = paddle.static.Program() - with paddle.static.program_guard(main_program, startup_program): - data = paddle.static.data(name='image', shape=[None, 784, 784], dtype='float32') - hidden = paddle.static.nn.fc(x=data, size=10, activation='relu') +COPY-FROM: paddle.static.program_guard:code-example1 例如,当组的网不需要 startup_program 初始化各变量时,可以传入一个临时的 program。 代码示例 2 :::::::::::: -.. code-block:: python - - import paddle - - paddle.enable_static() - main_program = paddle.static.Program() - # does not care about startup program. Just pass a temporary value. - with paddle.static.program_guard(main_program, paddle.static.Program()): - data = paddle.static.data(name='image', shape=[None, 784, 784], dtype='float32') +COPY-FROM: paddle.static.program_guard:code-example2 From 684dfb0b4bda0f9c3c2d716f0e1146efe2b91117 Mon Sep 17 00:00:00 2001 From: enkilee Date: Sun, 25 Jun 2023 11:09:53 +0800 Subject: [PATCH 02/11] fix --- docs/api/paddle/static/nn/fc_cn.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api/paddle/static/nn/fc_cn.rst b/docs/api/paddle/static/nn/fc_cn.rst index f83b7eaf65f..37e5c8c2cfe 100755 --- a/docs/api/paddle/static/nn/fc_cn.rst +++ b/docs/api/paddle/static/nn/fc_cn.rst @@ -65,6 +65,7 @@ fc out.shape = (1, 2) + 参数 ::::::::: From 012ebb6261ee09dbc0bb7788fae3d35ef45f48a1 Mon Sep 17 00:00:00 2001 From: enkilee Date: Mon, 26 Jun 2023 10:56:51 +0800 Subject: [PATCH 03/11] fix --- docs/api/paddle/static/InputSpec_cn.rst | 10 ++++---- docs/api/paddle/static/Program_cn.rst | 32 ++++++++++++------------- docs/api/paddle/static/Variable_cn.rst | 14 +++++------ docs/api/paddle/static/nn/cond_cn.rst | 2 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/api/paddle/static/InputSpec_cn.rst b/docs/api/paddle/static/InputSpec_cn.rst index 092b5ed5d82..aee53280ec6 100644 --- a/docs/api/paddle/static/InputSpec_cn.rst +++ b/docs/api/paddle/static/InputSpec_cn.rst @@ -24,7 +24,7 @@ InputSpec 代码示例 :::::::::::: -COPY-FROM: paddle.static.InputSpec:code-example1 +COPY-FROM: paddle.static.InputSpec 方法 :::::::::::: @@ -45,7 +45,7 @@ from_tensor(tensor, name=None) **代码示例** -COPY-FROM: paddle.static.InputSpec:code-example2 +COPY-FROM: paddle.static.InputSpec.from_tensor from_numpy(ndarray, name=None) @@ -65,7 +65,7 @@ from_numpy(ndarray, name=None) **代码示例** -COPY-FROM: paddle.static.InputSpec:code-example3 +COPY-FROM: paddle.static.InputSpec.from_numpy batch(batch_size) @@ -83,7 +83,7 @@ batch(batch_size) **代码示例** -COPY-FROM: paddle.static.InputSpec:code-example4 +COPY-FROM: paddle.static.InputSpec.batch unbatch() @@ -98,4 +98,4 @@ unbatch() **代码示例** -COPY-FROM: paddle.static.InputSpec:code-example5 \ No newline at end of file +COPY-FROM: paddle.static.InputSpec.unbatch diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index 6e83d95d000..43edfc1e555 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -22,7 +22,7 @@ Program,创建的空的 Program。 代码示例 :::::::::: -COPY-FROM: paddle.static.Program:code-example1 +COPY-FROM: paddle.static.Program 方法 @@ -44,7 +44,7 @@ str,由 Program 转换得到的字符串。 **代码示例** -COPY-FROM: paddle.static.Program:code-example2 +COPY-FROM: paddle.static.Program.to_string clone(for_test=False) ''''''''' @@ -63,7 +63,7 @@ clone(for_test=False) **代码示例** -COPY-FROM: paddle.static.Program:code-example3 +COPY-FROM: paddle.static.Program:code-example1 **参数** @@ -79,15 +79,15 @@ Program,当 ``for_test=True`` 时返回一个新的、仅包含当前 Program .. note:: Program 在 clone 后的顺序可能不同,这不会影响的训练或测试进程。在下面的示例中,我们提供了一个简单的方法 print_prog(Program)来打印程序描述,以确保 clone 后仍能得到同样的打印结果: -COPY-FROM: paddle.static.Program:code-example4 +COPY-FROM: paddle.static.Program:code-example2 1. 克隆一个 Program,示例代码如下。 -COPY-FROM: paddle.static.Program:code-example5 +COPY-FROM: paddle.static.Program:code-example3 2. 如果分别运行 train Program 和 test Program,则可以不使用 clone。 -COPY-FROM: paddle.static.Program:code-example6 +COPY-FROM: paddle.static.Program:code-example4 上边两个代码片段生成和打印的 Program 是一样的。 @@ -107,7 +107,7 @@ Program,反序列化后的 Program。 **代码示例** -COPY-FROM: paddle.static.Program:code-example7 +COPY-FROM: paddle.static.Program.parse_from_string 属性 :::::::::::: @@ -122,7 +122,7 @@ int,该 Program 中的 :ref:`api_guide_Block` 的个数。 **代码示例** -COPY-FROM: paddle.static.Program:code-example8 +COPY-FROM: paddle.static.Program.num_blocks random_seed ''''''''' @@ -138,7 +138,7 @@ int64,该 Program 中当前正在使用的 random seed。 **代码示例** -COPY-FROM: paddle.static.Program:code-example9 +COPY-FROM: paddle.static.Program.random_seed global_block() ''''''''' @@ -151,7 +151,7 @@ global_block() **代码示例** -COPY-FROM: paddle.static.Program:code-example10 +COPY-FROM: paddle.static.Program.global_block block(index) @@ -169,7 +169,7 @@ block(index) **代码示例** -COPY-FROM: paddle.static.Program:code-example11 +COPY-FROM: paddle.static.Program.block current_block() ''''''''' @@ -182,7 +182,7 @@ current_block() **代码示例** -COPY-FROM: paddle.static.Program:code-example12 +COPY-FROM: paddle.static.Program.current_block list_vars() ''''''''' @@ -195,7 +195,7 @@ Generator,会 yield 每个 Program 中的变量。 **代码示例** -COPY-FROM: paddle.static.Program:code-example13 +COPY-FROM: paddle.static.Program.list_vars all_parameters() ''''''''' @@ -208,7 +208,7 @@ list[ :ref:`api_guide_parameter` ],一个包含当前 Program 中所有参数 **代码示例** -COPY-FROM: paddle.static.Program:code-example14 +COPY-FROM: paddle.static.Program.all_parameters state_dict(mode='all', scope=None) ''''''''' @@ -226,7 +226,7 @@ dict,包含持久性变量的 dict,键值是持久性变量的名字,值 **代码示例** -COPY-FROM: paddle.static.Program:code-example15 +COPY-FROM: paddle.static.Program.state_dict set_state_dict(state_dict, scope=None) ''''''''' @@ -244,4 +244,4 @@ set_state_dict(state_dict, scope=None) **代码示例** -COPY-FROM: paddle.static.Program:code-example16 +COPY-FROM: paddle.static.Program.set_state_dict diff --git a/docs/api/paddle/static/Variable_cn.rst b/docs/api/paddle/static/Variable_cn.rst index c463ef38bd2..01858430c79 100644 --- a/docs/api/paddle/static/Variable_cn.rst +++ b/docs/api/paddle/static/Variable_cn.rst @@ -41,7 +41,7 @@ to_string(throw_on_error, with_details=True) **代码示例** -COPY-FROM: paddle.static.Variable:code-example2 +COPY-FROM: paddle.static.Variable.to_string clone(self) @@ -54,7 +54,7 @@ clone(self) 复制的新 ``Variable``。 **代码示例** -COPY-FROM: paddle.static.Variable:code-example3 +COPY-FROM: paddle.static.Variable.clone detach(self) @@ -67,7 +67,7 @@ detach(self) 与当前计算图分离的 ``Variable``。 **代码示例** -COPY-FROM: paddle.static.Variable:code-example4 +COPY-FROM: paddle.static.Variable.detach astype(self, dtype) @@ -87,7 +87,7 @@ astype(self, dtype) **代码示例** -COPY-FROM: paddle.static.Variable:code-example5 +COPY-FROM: paddle.static.Variable.astype get_value(scope=None) @@ -106,7 +106,7 @@ Tensor, :ref:`api_guide_Variable` 的值。 **代码示例** **代码示例** -COPY-FROM: paddle.static.Variable:code-example6 +COPY-FROM: paddle.static.Variable.get_value set_value(value, scope=None) @@ -125,7 +125,7 @@ set_value(value, scope=None) **代码示例** -COPY-FROM: paddle.static.Variable:code-example7 +COPY-FROM: paddle.static.Variable.set_value size(self) @@ -139,7 +139,7 @@ size(self) **代码示例** -COPY-FROM: paddle.static.Variable:code-example8 +COPY-FROM: paddle.static.Variable.size ndimension(self) diff --git a/docs/api/paddle/static/nn/cond_cn.rst b/docs/api/paddle/static/nn/cond_cn.rst index d3c13f280ca..73be2f61b05 100644 --- a/docs/api/paddle/static/nn/cond_cn.rst +++ b/docs/api/paddle/static/nn/cond_cn.rst @@ -36,4 +36,4 @@ Tensor|list(Tensor)|tuple(Tensor),如果 ``pred`` 是 ``True``,该 API 返 代码示例 ::::::::: -COPY-FROM: paddle.static.nn.cond:code-example2 +COPY-FROM: paddle.static.nn.cond From 0bb2bdb01e065e11eedb2f012fba59cd5e056055 Mon Sep 17 00:00:00 2001 From: enkilee Date: Mon, 26 Jun 2023 15:21:05 +0800 Subject: [PATCH 04/11] test=docs_preview --- docs/api/paddle/static/Program_cn.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index 43edfc1e555..6ea8603d47c 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -12,7 +12,7 @@ Program Program 是 Paddle 对于计算图的一种静态描述,使用 Program 的构造函数可以创建一个 Program。Program 中包括至少一个 :ref:`api_guide_Block`,当 :ref:`api_guide_Block` 中存在条件选择的控制流 OP(例如 :ref:`cn_api_fluid_layers_While` 等)时,该 Program 将会含有嵌套着的 :ref:`api_guide_Block` 即控制流外部的 :ref:`api_guide_Block` 将包含着控制流内部的 :ref:`api_guide_Block`,而嵌套的 :ref:`api_guide_Block` 的元素访问控制将由具体的控制流 OP 来决定。关于 Program 具体的结构和包含的类型请参阅 `framework.proto `_ 。 -一个 Program 的集合通常包含初始化程序(startup_program)与主程序(main_program),初始化程序是一个包含一些初始化工作的 Program,主程序将会包含用来训练的网络结构和变量,在使用同一个 :ref:`api_guide_executor` 执行时他们会共享初始化工作的结果,例如初始化的参数。一个 Program 的集合可以被用来测试或者训练,被用来训练时,``Paddle`` 将会利用所有用户使用的 OP 和变量来搭建一个训练网络,被用来测试时,可以通过调用 Program 相关的接口例如:`clone` 剪去一些与测试无关的 OP 和变量,比如反向传播的 OP 和变量。 +一个 Program 的集合通常包含初始化程序(startup_program)与主程序(main_program),初始化程序是一个包含一些初始化工作的 Program,主程序将会包含用来训练的网络结构和变量,在使用同一个 :ref:`api_guide_executor` 执行时他们会共享初始化工作的结果,例如初始化的参数。一个 Program 的集合可以被用来测试或者训练,被用来训练时,``Paddle`` 将会使用所有用户的 OP 和变量来搭建一个训练网络,被用来测试时,可以通过调用 Program 相关的接口例如:``clone` 剪去一些与测试无关的 OP 和变量,比如反向传播的 OP 和变量。 返回 @@ -35,7 +35,7 @@ to_string(throw_on_error, with_details=False) **参数** - **throw_on_error** (bool) - 是否在没有设置必需字段时抛出异常。 - - **with_details** (bool) - 值为 true 时,打印更多关于变量和参数的信息,如 trainable, optimize_attr 等。 + - **with_details** (bool) - 值为 true 时,打印更多关于变量和参数的信息,如 ``trainable``, ``optimize_attr``等。 **返回** @@ -54,12 +54,12 @@ clone(for_test=False) 2. 此 API 当 ``for_test=True`` 时将会裁剪部分 OP 和变量。为防止错误的裁剪,推荐在 :ref:`cn_api_fluid_backward_append_backward` 和执行优化器之前使用;``clone(for_test=True)`` 。 -当 ``for_test=True`` 时创建一个新的、仅包含当前 Program 前向内容的 Program。否则创建一个新的,和当前 Program 完全相同的 Program +当 ``for_test=True`` 时创建一个新的、仅包含当前 Program 前向内容的 Program。否则创建一个新的和当前 Program 完全相同的 Program 。 有些 OP,在训练和测试之间的行为是不同的,比如 :ref:`cn_api_fluid_layers_batch_norm`。它们有一个属性 ``is_test`` 来控制行为。当 ``for_test=True`` 时,此方法将把它们的 ``is_test`` 属性更改为 True。 - 克隆 Program 用于训练时,将 ``for_test`` 设置为 False。 -- 克隆 Program 用于测试时,将 ``for_test`` 设置为 True。虽然在这种情况下,如果在使用了优化器之后调用 ``clone`` 我们依旧会对 Program 当中反向执行以及优化器相关的内容进行自动裁剪,但是,我们强烈建议在使用优化器之前使用 ``clone`` 例如如果使用的是 :ref:`cn_api_fluid_optimizer_Momentum` 可以这样去使用: +- 克隆 Program 用于测试时,将 ``for_test`` 设置为 True。虽然在这种情况下,如果在使用了优化器之后调用 ``clone`` 我们依旧会对 Program 当中反向执行以及优化器相关的内容进行自动裁剪,但是,我们强烈建议在使用优化器之前使用 ``clone`` 例如如果使用的是 :ref:`cn_api_paddle_optimizer_Momentum` 可以这样去使用: **代码示例** @@ -99,7 +99,7 @@ COPY-FROM: paddle.static.Program:code-example4 **参数** - - **binary_str_type** (str) – `protobuf `_ 二进制字符串。 + - **binary_str** (str) – `protobuf `_ 二进制字符串。 **返回** @@ -157,7 +157,7 @@ COPY-FROM: paddle.static.Program.global_block block(index) ''''''''' -返回该 Program 中,``index`` 指定的 :ref:`api_guide_Block` 。 ``index`` 类型为 int。 +返回该 Program 中,``index`` 指定的 :ref:`api_guide_Block` 。 ``index`` 类型为 ``int`` 。 **参数** @@ -217,7 +217,7 @@ state_dict(mode='all', scope=None) **参数** - - **mode** (str,可选) - 获取何种持久性变量。目前支持以下选项:(1) 'opt':获得优化器的持久性变量放在 dict 结构中;(2) 'param':获得组网中的持久性变量放在 dict 结构中,不包含优化器中的持久性变量;(3) 'all':获得组网和优化器中的持久性变量放在 dict 结构中;默认值为'all'。 + - **mode** (str,可选) - 获取何种持久性变量。目前支持以下选项:(1) ``opt`` :获得优化器的持久性变量放在 ``dict`` 结构中;(2) ``param``:获得组网中的持久性变量放在 ``dict`` 结构中,不包含优化器中的持久性变量;(3) ``all`` :获得组网和优化器中的持久性变量放在 dict 结构中;默认值为 ``all`` 。 - **scope** (Scope,可选) - 如果 scope 为 ``None``,通过 `paddle.static.global_scope()` 获取全局/默认作用域实例,并从中获取 ``state_dict``;否则从指定的 ``scope`` 获取 ``state_dict``。默认值为 ``None`` 。 **返回** From b626ae1aa1bdbea5d6e1f7e097f644b35711ce4b Mon Sep 17 00:00:00 2001 From: enkilee Date: Mon, 26 Jun 2023 15:56:48 +0800 Subject: [PATCH 05/11] fix typo --- docs/api/paddle/static/Program_cn.rst | 6 +++--- docs/api/paddle/static/nn/cond_cn.rst | 16 ++++++++-------- docs/api/paddle/static/nn/fc_cn.rst | 1 - 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index 6ea8603d47c..372b593b47c 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -12,7 +12,7 @@ Program Program 是 Paddle 对于计算图的一种静态描述,使用 Program 的构造函数可以创建一个 Program。Program 中包括至少一个 :ref:`api_guide_Block`,当 :ref:`api_guide_Block` 中存在条件选择的控制流 OP(例如 :ref:`cn_api_fluid_layers_While` 等)时,该 Program 将会含有嵌套着的 :ref:`api_guide_Block` 即控制流外部的 :ref:`api_guide_Block` 将包含着控制流内部的 :ref:`api_guide_Block`,而嵌套的 :ref:`api_guide_Block` 的元素访问控制将由具体的控制流 OP 来决定。关于 Program 具体的结构和包含的类型请参阅 `framework.proto `_ 。 -一个 Program 的集合通常包含初始化程序(startup_program)与主程序(main_program),初始化程序是一个包含一些初始化工作的 Program,主程序将会包含用来训练的网络结构和变量,在使用同一个 :ref:`api_guide_executor` 执行时他们会共享初始化工作的结果,例如初始化的参数。一个 Program 的集合可以被用来测试或者训练,被用来训练时,``Paddle`` 将会使用所有用户的 OP 和变量来搭建一个训练网络,被用来测试时,可以通过调用 Program 相关的接口例如:``clone` 剪去一些与测试无关的 OP 和变量,比如反向传播的 OP 和变量。 +一个 Program 的集合通常包含初始化程序(startup_program)与主程序(main_program),初始化程序是一个包含一些初始化工作的 Program,主程序将会包含用来训练的网络结构和变量,在使用同一个 :ref:`api_guide_executor` 执行时他们会共享初始化工作的结果,例如初始化的参数。一个 Program 的集合可以被用来测试或者训练,被用来训练时,``Paddle`` 将会利用所有用户使用的 OP 和变量来搭建一个训练网络,被用来测试时,可以通过调用 Program 相关的接口例如:``clone`` 剪去一些与测试无关的 OP 和变量,比如反向传播的 OP 和变量。 返回 @@ -54,7 +54,7 @@ clone(for_test=False) 2. 此 API 当 ``for_test=True`` 时将会裁剪部分 OP 和变量。为防止错误的裁剪,推荐在 :ref:`cn_api_fluid_backward_append_backward` 和执行优化器之前使用;``clone(for_test=True)`` 。 -当 ``for_test=True`` 时创建一个新的、仅包含当前 Program 前向内容的 Program。否则创建一个新的和当前 Program 完全相同的 Program 。 +当 ``for_test=True`` 时创建一个新的、仅包含当前 Program 前向内容的 Program。否则创建一个新的和当前 Program 完全相同的 Program。 有些 OP,在训练和测试之间的行为是不同的,比如 :ref:`cn_api_fluid_layers_batch_norm`。它们有一个属性 ``is_test`` 来控制行为。当 ``for_test=True`` 时,此方法将把它们的 ``is_test`` 属性更改为 True。 @@ -217,7 +217,7 @@ state_dict(mode='all', scope=None) **参数** - - **mode** (str,可选) - 获取何种持久性变量。目前支持以下选项:(1) ``opt`` :获得优化器的持久性变量放在 ``dict`` 结构中;(2) ``param``:获得组网中的持久性变量放在 ``dict`` 结构中,不包含优化器中的持久性变量;(3) ``all`` :获得组网和优化器中的持久性变量放在 dict 结构中;默认值为 ``all`` 。 + - **mode** (str,可选) - 获取何种持久性变量。目前支持以下选项:(1) ``opt``:获得优化器的持久性变量放在 ``dict`` 结构中;(2) ``param``:获得组网中的持久性变量放在 ``dict`` 结构中,不包含优化器中的持久性变量;(3) ``all``:获得组网和优化器中的持久性变量放在 dict 结构中;默认值为 ``all``。 - **scope** (Scope,可选) - 如果 scope 为 ``None``,通过 `paddle.static.global_scope()` 获取全局/默认作用域实例,并从中获取 ``state_dict``;否则从指定的 ``scope`` 获取 ``state_dict``。默认值为 ``None`` 。 **返回** diff --git a/docs/api/paddle/static/nn/cond_cn.rst b/docs/api/paddle/static/nn/cond_cn.rst index 73be2f61b05..d6448786c3e 100644 --- a/docs/api/paddle/static/nn/cond_cn.rst +++ b/docs/api/paddle/static/nn/cond_cn.rst @@ -7,10 +7,10 @@ cond .. py:function:: paddle.static.nn.cond(pred, true_fn=None, false_fn=None, name=None, return_names=None) -如果 ``pred`` 是 ``True``,该 API 返回 ``true_fn()``,否则返回 ``false_fn()`` 。 -用户如果不想在 ``callable`` 中做任何事,可以把 ``true_fn`` 或 ``false_fn`` 设为 ``None``,此时本 API 会把该 ``callable`` 视为简单返回 ``None`` 。 +如果 ``pred`` 是 ``True``,该 API 返回 ``true_fn()``,否则返回 ``false_fn()``。 +用户如果不想在 ``callable`` 中做任何事,可以把 ``true_fn`` 或 ``false_fn`` 设为 ``None``,此时本 API 会把该 ``callable`` 视为简单返回 ``None``。 -``true_fn`` 和 ``false_fn`` 需要返回同样嵌套结构(nest structure)的 Tensor,如果不想返回任何值也可都返回 ``None`` 。 +``true_fn`` 和 ``false_fn`` 需要返回同样嵌套结构(nest structure)的 Tensor,如果不想返回任何值也可都返回 ``None``。 PaddlePaddle 里 Tensor 的嵌套结构是指一个 Tensor,或者 Tensor 的元组(tuple),或者 Tensor 的列表(list)。 .. note:: @@ -25,14 +25,14 @@ PaddlePaddle 里 Tensor 的嵌套结构是指一个 Tensor,或者 Tensor 的 参数 ::::::::: - **pred** (Tensor) - 一个元素个数为 1 的布尔型(boolean)的 Tensor ( 0-D Tensor 或者形状为 [1] ),该布尔值决定要返回 ``true_fn`` 还是 ``false_fn`` 的运行结果。 - - **true_fn** (callable) - 一个当 ``pred`` 是 ``True`` 时被调用的 callable,默认值: ``None`` 。 - - **false_fn** (callable) - 一个当 ``pred`` 是 ``False`` 时被调用的 callable,默认值: ``None`` 。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - - **return_names** (sequence of string,可选) - 通常情况下,用户不必设置此参数。字符串表示返回的变量的名称。序列的结构必须与 ``true_fn`` 和 ``false_fn`` 的返回值相同,默认值: ``None`` 。 + - **true_fn** (callable) - 一个当 ``pred`` 是 ``True`` 时被调用的 callable,默认值:``None``。 + - **false_fn** (callable) - 一个当 ``pred`` 是 ``False`` 时被调用的 callable,默认值:``None``。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值:``None``。 + - **return_names** (sequence of string,可选) - 通常情况下,用户不必设置此参数。字符串表示返回的变量的名称。序列的结构必须与 ``true_fn`` 和 ``false_fn`` 的返回值相同,默认值:``None``。 返回 ::::::::: -Tensor|list(Tensor)|tuple(Tensor),如果 ``pred`` 是 ``True``,该 API 返回 ``true_fn()``,否则返回 ``false_fn()`` 。 +Tensor|list(Tensor)|tuple(Tensor),如果 ``pred`` 是 ``True``,该 API 返回 ``true_fn()``,否则返回 ``false_fn()``。 代码示例 ::::::::: diff --git a/docs/api/paddle/static/nn/fc_cn.rst b/docs/api/paddle/static/nn/fc_cn.rst index 37e5c8c2cfe..f83b7eaf65f 100755 --- a/docs/api/paddle/static/nn/fc_cn.rst +++ b/docs/api/paddle/static/nn/fc_cn.rst @@ -65,7 +65,6 @@ fc out.shape = (1, 2) - 参数 ::::::::: From 7d1bb0db927e3530b0cc7ece25af9999e7606501 Mon Sep 17 00:00:00 2001 From: enkilee Date: Tue, 27 Jun 2023 22:45:49 +0800 Subject: [PATCH 06/11] fix --- docs/api/paddle/static/Program_cn.rst | 15 +++++++---- docs/api/paddle/static/Variable_cn.rst | 35 ++++++++------------------ 2 files changed, 21 insertions(+), 29 deletions(-) diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index 372b593b47c..d25c5992838 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -35,7 +35,7 @@ to_string(throw_on_error, with_details=False) **参数** - **throw_on_error** (bool) - 是否在没有设置必需字段时抛出异常。 - - **with_details** (bool) - 值为 true 时,打印更多关于变量和参数的信息,如 ``trainable``, ``optimize_attr``等。 + - **with_details** (bool) - 值为 true 时,打印更多关于变量和参数的信息,如 ``trainable``, ``optimize_attr`` 等。 **返回** @@ -63,7 +63,7 @@ clone(for_test=False) **代码示例** -COPY-FROM: paddle.static.Program:code-example1 +COPY-FROM: paddle.static.Program.clone:code-example1 **参数** @@ -79,15 +79,15 @@ Program,当 ``for_test=True`` 时返回一个新的、仅包含当前 Program .. note:: Program 在 clone 后的顺序可能不同,这不会影响的训练或测试进程。在下面的示例中,我们提供了一个简单的方法 print_prog(Program)来打印程序描述,以确保 clone 后仍能得到同样的打印结果: -COPY-FROM: paddle.static.Program:code-example2 +COPY-FROM: paddle.static.Program.clone:code-example2 1. 克隆一个 Program,示例代码如下。 -COPY-FROM: paddle.static.Program:code-example3 +COPY-FROM: paddle.static.Program.clone:code-example3 2. 如果分别运行 train Program 和 test Program,则可以不使用 clone。 -COPY-FROM: paddle.static.Program:code-example4 +COPY-FROM: paddle.static.Program.clone:code-example4 上边两个代码片段生成和打印的 Program 是一样的。 @@ -171,6 +171,7 @@ block(index) COPY-FROM: paddle.static.Program.block + current_block() ''''''''' @@ -184,6 +185,7 @@ current_block() COPY-FROM: paddle.static.Program.current_block + list_vars() ''''''''' @@ -197,6 +199,7 @@ Generator,会 yield 每个 Program 中的变量。 COPY-FROM: paddle.static.Program.list_vars + all_parameters() ''''''''' @@ -210,6 +213,7 @@ list[ :ref:`api_guide_parameter` ],一个包含当前 Program 中所有参数 COPY-FROM: paddle.static.Program.all_parameters + state_dict(mode='all', scope=None) ''''''''' @@ -228,6 +232,7 @@ dict,包含持久性变量的 dict,键值是持久性变量的名字,值 COPY-FROM: paddle.static.Program.state_dict + set_state_dict(state_dict, scope=None) ''''''''' diff --git a/docs/api/paddle/static/Variable_cn.rst b/docs/api/paddle/static/Variable_cn.rst index 01858430c79..f8e66d60b62 100644 --- a/docs/api/paddle/static/Variable_cn.rst +++ b/docs/api/paddle/static/Variable_cn.rst @@ -19,9 +19,17 @@ Variable 如果您希望创建一个 :ref:`api_guide_Variable` 那么可以参考如下示例: +在静态图模型中: + +代码示例 +:::::::::::: +COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example1 + +在动态图模型中: + 代码示例 :::::::::::: -COPY-FROM: paddle.static.Variable:code-example1 +COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example2 方法 :::::::::::: @@ -84,8 +92,6 @@ astype(self, dtype) **返回** 一个全新的转换了 ``Dtype`` 的 :ref:`api_guide_Variable`。 - - **代码示例** COPY-FROM: paddle.static.Variable.astype @@ -103,8 +109,6 @@ get_value(scope=None) Tensor, :ref:`api_guide_Variable` 的值。 -**代码示例** - **代码示例** COPY-FROM: paddle.static.Variable.get_value @@ -137,7 +141,6 @@ size(self) ``Variable``:单元元素数量。 - **代码示例** COPY-FROM: paddle.static.Variable.size @@ -152,15 +155,7 @@ ndimension(self) ``Variable`` 的维度。 **代码示例** - .. code-block:: python - - import paddle - - paddle.enable_static() - - x = paddle.static.data(name="x", shape=[10, 10], dtype='float32') - print("Variable's number of dimension: ", x.ndimension()) - # Variable's number of dimension: 2 +COPY-FROM: paddle.static.Variable.ndimension dim(self) @@ -172,15 +167,7 @@ dim(self) ``Variable`` 的维度。 **代码示例** - .. code-block:: python - - import paddle - - paddle.enable_static() - - x = paddle.static.data(name="x", shape=[10, 10], dtype='float32') - print("Variable's number of dim: ", x.dim()) - # Variable's number of dim: 2 +COPY-FROM: paddle.static.Variable.dim 属性 From 55dc29b34a9212ef75b2c680bd0585592902d668 Mon Sep 17 00:00:00 2001 From: enkilee Date: Tue, 27 Jun 2023 23:00:20 +0800 Subject: [PATCH 07/11] fix --- docs/api/paddle/static/nn/cond_cn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/paddle/static/nn/cond_cn.rst b/docs/api/paddle/static/nn/cond_cn.rst index d6448786c3e..2a9779f6e1f 100644 --- a/docs/api/paddle/static/nn/cond_cn.rst +++ b/docs/api/paddle/static/nn/cond_cn.rst @@ -36,4 +36,4 @@ Tensor|list(Tensor)|tuple(Tensor),如果 ``pred`` 是 ``True``,该 API 返 代码示例 ::::::::: -COPY-FROM: paddle.static.nn.cond +COPY-FROM: paddle.static.nn.cond:code-example2 From dddbd1d8fd290bc16d014ef18ed3745f93178fab Mon Sep 17 00:00:00 2001 From: enkilee Date: Sun, 2 Jul 2023 19:50:24 +0800 Subject: [PATCH 08/11] fix --- docs/api/paddle/static/Program_cn.rst | 4 ++-- docs/api/paddle/static/Variable_cn.rst | 4 ++-- docs/api/paddle/static/nn/cond_cn.rst | 4 ++-- docs/api/paddle/static/program_guard_cn.rst | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index d25c5992838..d32e2b9688c 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -63,7 +63,7 @@ clone(for_test=False) **代码示例** -COPY-FROM: paddle.static.Program.clone:code-example1 +COPY-FROM: paddle.static.Program.clone:code-example-1 **参数** @@ -79,7 +79,7 @@ Program,当 ``for_test=True`` 时返回一个新的、仅包含当前 Program .. note:: Program 在 clone 后的顺序可能不同,这不会影响的训练或测试进程。在下面的示例中,我们提供了一个简单的方法 print_prog(Program)来打印程序描述,以确保 clone 后仍能得到同样的打印结果: -COPY-FROM: paddle.static.Program.clone:code-example2 +COPY-FROM: paddle.static.Program.clone:code-example-2 1. 克隆一个 Program,示例代码如下。 diff --git a/docs/api/paddle/static/Variable_cn.rst b/docs/api/paddle/static/Variable_cn.rst index f8e66d60b62..83f5e7d71b2 100644 --- a/docs/api/paddle/static/Variable_cn.rst +++ b/docs/api/paddle/static/Variable_cn.rst @@ -23,13 +23,13 @@ Variable 代码示例 :::::::::::: -COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example1 +COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example-1 在动态图模型中: 代码示例 :::::::::::: -COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example2 +COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example-2 方法 :::::::::::: diff --git a/docs/api/paddle/static/nn/cond_cn.rst b/docs/api/paddle/static/nn/cond_cn.rst index 2a9779f6e1f..55cae64912b 100644 --- a/docs/api/paddle/static/nn/cond_cn.rst +++ b/docs/api/paddle/static/nn/cond_cn.rst @@ -18,7 +18,7 @@ PaddlePaddle 里 Tensor 的嵌套结构是指一个 Tensor,或者 Tensor 的 2. 本接口在动态图和静态图模式下都可以运行,在动态图情况下就只会按 ``pred`` 条件运行其中一支分支。 3. 静态图模式下,因为各个分支都要参与组网,因此不论运行哪个分支,在 ``true_fn`` 和 ``false_fn`` 内外创建的 Tensor 和 Op 都会组网,即 PaddlePaddle 并不是惰性语法(lazy semantics)。例如 - COPY-FROM: paddle.static.nn.cond:code-example1 + COPY-FROM: paddle.static.nn.cond:code-example-1 不管 ``a < b`` 是否成立,``c = a * b`` 都会被组网且运行,``a + c`` 和 ``b * b`` 都会参与组网,只是组网后运行时只会运行条件对应的分支。 @@ -36,4 +36,4 @@ Tensor|list(Tensor)|tuple(Tensor),如果 ``pred`` 是 ``True``,该 API 返 代码示例 ::::::::: -COPY-FROM: paddle.static.nn.cond:code-example2 +COPY-FROM: paddle.static.nn.cond:code-example-2 diff --git a/docs/api/paddle/static/program_guard_cn.rst b/docs/api/paddle/static/program_guard_cn.rst index 31fadf6d93c..3dc65435190 100644 --- a/docs/api/paddle/static/program_guard_cn.rst +++ b/docs/api/paddle/static/program_guard_cn.rst @@ -22,11 +22,11 @@ program_guard 代码示例 1 :::::::::::: -COPY-FROM: paddle.static.program_guard:code-example1 +COPY-FROM: paddle.static.program_guard:code-example-1 例如,当组的网不需要 startup_program 初始化各变量时,可以传入一个临时的 program。 代码示例 2 :::::::::::: -COPY-FROM: paddle.static.program_guard:code-example2 +COPY-FROM: paddle.static.program_guard:code-example-2 From b2a3b1581d1ea345d0091153f0c235eaf6868d13 Mon Sep 17 00:00:00 2001 From: enkilee Date: Mon, 3 Jul 2023 08:41:17 +0800 Subject: [PATCH 09/11] fix --- docs/api/paddle/static/Program_cn.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index d32e2b9688c..f5ec39f2a01 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -83,11 +83,11 @@ COPY-FROM: paddle.static.Program.clone:code-example-2 1. 克隆一个 Program,示例代码如下。 -COPY-FROM: paddle.static.Program.clone:code-example3 +COPY-FROM: paddle.static.Program.clone:code-example-3 2. 如果分别运行 train Program 和 test Program,则可以不使用 clone。 -COPY-FROM: paddle.static.Program.clone:code-example4 +COPY-FROM: paddle.static.Program.clone:code-example-4 上边两个代码片段生成和打印的 Program 是一样的。 From 59165d591a4bf6e3151011b16c5d9a7d19251c25 Mon Sep 17 00:00:00 2001 From: enkilee Date: Mon, 3 Jul 2023 09:27:02 +0800 Subject: [PATCH 10/11] fix --- docs/api/paddle/static/Variable_cn.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api/paddle/static/Variable_cn.rst b/docs/api/paddle/static/Variable_cn.rst index 83f5e7d71b2..c8f20e05ab5 100644 --- a/docs/api/paddle/static/Variable_cn.rst +++ b/docs/api/paddle/static/Variable_cn.rst @@ -23,13 +23,13 @@ Variable 代码示例 :::::::::::: -COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example-1 +COPY-FROM: paddle.static.Variable:code-example-1 在动态图模型中: 代码示例 :::::::::::: -COPY-FROM: paddle.static.VariableMetaClass.Variable:code-example-2 +COPY-FROM: paddle.static.Variable:code-example-2 方法 :::::::::::: From 7a940588a8f8814acd1693805c7030da98303eec Mon Sep 17 00:00:00 2001 From: enkilee Date: Mon, 3 Jul 2023 14:13:24 +0800 Subject: [PATCH 11/11] fix --- docs/api/paddle/static/Program_cn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/paddle/static/Program_cn.rst b/docs/api/paddle/static/Program_cn.rst index f5ec39f2a01..b994106f9f9 100644 --- a/docs/api/paddle/static/Program_cn.rst +++ b/docs/api/paddle/static/Program_cn.rst @@ -35,7 +35,7 @@ to_string(throw_on_error, with_details=False) **参数** - **throw_on_error** (bool) - 是否在没有设置必需字段时抛出异常。 - - **with_details** (bool) - 值为 true 时,打印更多关于变量和参数的信息,如 ``trainable``, ``optimize_attr`` 等。 + - **with_details** (bool) - 值为 true 时,打印更多关于变量和参数的信息,如 ``trainable``, ``optimize_attr`` 等。 **返回**