未验证 提交 36153898 编写于 作者: C Candy2Tang 提交者: GitHub

[xdoctest][task 113] Reformat example code with google style in...

[xdoctest][task 113] Reformat example code with google style in python/paddle/nn/layer/container.py (#56229)

* [xdoctest][task 113] test=docs_preview

* test=document_fix

* test=document_fix
上级 14abff89
...@@ -25,7 +25,7 @@ __all__ = [] ...@@ -25,7 +25,7 @@ __all__ = []
class LayerDict(Layer): class LayerDict(Layer):
""" """
LayerDict holds sublayers in the ordered dictionary, and sublayers it contains are properly registered. LayerDict holds sublayers in the ordered dictionary, and sublayers it contains are properly registered.
Holded sublayers can be accessed like a regular ordered python dictionary. Held sublayers can be accessed like a regular ordered python dictionary.
Parameters: Parameters:
sublayers (LayerDict|OrderedDict|list[(key,Layer)...], optional): iterable of key/value pairs, the type of value is 'paddle.nn.Layer' . sublayers (LayerDict|OrderedDict|list[(key,Layer)...], optional): iterable of key/value pairs, the type of value is 'paddle.nn.Layer' .
...@@ -33,37 +33,37 @@ class LayerDict(Layer): ...@@ -33,37 +33,37 @@ class LayerDict(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
import numpy as np >>> import numpy as np
from collections import OrderedDict >>> from collections import OrderedDict
sublayers = OrderedDict([ >>> sublayers = OrderedDict([
('conv1d', paddle.nn.Conv1D(3, 2, 3)), ... ('conv1d', paddle.nn.Conv1D(3, 2, 3)),
('conv2d', paddle.nn.Conv2D(3, 2, 3)), ... ('conv2d', paddle.nn.Conv2D(3, 2, 3)),
('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))), ... ('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
]) >>> ])
layers_dict = paddle.nn.LayerDict(sublayers=sublayers) >>> layers_dict = paddle.nn.LayerDict(sublayers=sublayers)
l = layers_dict['conv1d'] >>> l = layers_dict['conv1d']
for k in layers_dict: >>> for k in layers_dict:
l = layers_dict[k] ... l = layers_dict[k]
...
>>> print(len(layers_dict))
3
len(layers_dict) >>> del layers_dict['conv2d']
#3 >>> print(len(layers_dict))
2
del layers_dict['conv2d'] >>> conv1d = layers_dict.pop('conv1d')
len(layers_dict) >>> print(len(layers_dict))
#2 1
conv1d = layers_dict.pop('conv1d') >>> layers_dict.clear()
len(layers_dict) >>> print(len(layers_dict))
#1 0
layers_dict.clear()
len(layers_dict)
#0
""" """
...@@ -100,22 +100,22 @@ class LayerDict(Layer): ...@@ -100,22 +100,22 @@ class LayerDict(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
from collections import OrderedDict >>> from collections import OrderedDict
sublayers = OrderedDict([ >>> sublayers = OrderedDict([
('conv1d', paddle.nn.Conv1D(3, 2, 3)), ... ('conv1d', paddle.nn.Conv1D(3, 2, 3)),
('conv2d', paddle.nn.Conv2D(3, 2, 3)), ... ('conv2d', paddle.nn.Conv2D(3, 2, 3)),
('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))), ... ('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
]) >>> ])
layer_dict = paddle.nn.LayerDict(sublayers=sublayers) >>> layer_dict = paddle.nn.LayerDict(sublayers=sublayers)
len(layer_dict) >>> len(layer_dict)
#3 3
layer_dict.clear() >>> layer_dict.clear()
len(layer_dict) >>> len(layer_dict)
#0 0
""" """
self._sub_layers.clear() self._sub_layers.clear()
...@@ -130,22 +130,22 @@ class LayerDict(Layer): ...@@ -130,22 +130,22 @@ class LayerDict(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
from collections import OrderedDict >>> from collections import OrderedDict
sublayers = OrderedDict([ >>> sublayers = OrderedDict([
('conv1d', paddle.nn.Conv1D(3, 2, 3)), ... ('conv1d', paddle.nn.Conv1D(3, 2, 3)),
('conv2d', paddle.nn.Conv2D(3, 2, 3)), ... ('conv2d', paddle.nn.Conv2D(3, 2, 3)),
('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))), ... ('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
]) >>> ])
layer_dict = paddle.nn.LayerDict(sublayers=sublayers) >>> layer_dict = paddle.nn.LayerDict(sublayers=sublayers)
len(layer_dict) >>> len(layer_dict)
#3 3
layer_dict.pop('conv2d') >>> layer_dict.pop('conv2d')
len(layer_dict) >>> len(layer_dict)
#2 2
""" """
v = self[key] v = self[key]
...@@ -162,22 +162,21 @@ class LayerDict(Layer): ...@@ -162,22 +162,21 @@ class LayerDict(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
from collections import OrderedDict >>> from collections import OrderedDict
sublayers = OrderedDict([
('conv1d', paddle.nn.Conv1D(3, 2, 3)),
('conv2d', paddle.nn.Conv2D(3, 2, 3)),
('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
])
layer_dict = paddle.nn.LayerDict(sublayers=sublayers) >>> sublayers = OrderedDict([
for k in layer_dict.keys(): ... ('conv1d', paddle.nn.Conv1D(3, 2, 3)),
print(k) ... ('conv2d', paddle.nn.Conv2D(3, 2, 3)),
... ('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
>>> ])
#conv1d >>> layer_dict = paddle.nn.LayerDict(sublayers=sublayers)
#conv2d >>> for k in layer_dict.keys():
#conv3d ... print(k)
conv1d
conv2d
conv3d
""" """
return self._sub_layers.keys() return self._sub_layers.keys()
...@@ -192,22 +191,21 @@ class LayerDict(Layer): ...@@ -192,22 +191,21 @@ class LayerDict(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
from collections import OrderedDict >>> from collections import OrderedDict
sublayers = OrderedDict([ >>> sublayers = OrderedDict([
('conv1d', paddle.nn.Conv1D(3, 2, 3)), ... ('conv1d', paddle.nn.Conv1D(3, 2, 3)),
('conv2d', paddle.nn.Conv2D(3, 2, 3)), ... ('conv2d', paddle.nn.Conv2D(3, 2, 3)),
('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))), ... ('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
]) >>> ])
layer_dict = paddle.nn.LayerDict(sublayers=sublayers) >>> layer_dict = paddle.nn.LayerDict(sublayers=sublayers)
for k, v in layer_dict.items(): >>> for k, v in layer_dict.items():
print(k, ":", v) ... print(f"{k}:", v)
conv1d : Conv1D(3, 2, kernel_size=[3], data_format=NCL)
#conv1d : Conv1D(3, 2, kernel_size=[3], data_format=NCL) conv2d : Conv2D(3, 2, kernel_size=[3, 3], data_format=NCHW)
#conv2d : Conv2D(3, 2, kernel_size=[3, 3], data_format=NCHW) conv3d : Conv3D(4, 6, kernel_size=[3, 3, 3], data_format=NCDHW)
#conv3d : Conv3D(4, 6, kernel_size=[3, 3, 3], data_format=NCDHW)
""" """
return self._sub_layers.items() return self._sub_layers.items()
...@@ -222,22 +220,21 @@ class LayerDict(Layer): ...@@ -222,22 +220,21 @@ class LayerDict(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
from collections import OrderedDict >>> from collections import OrderedDict
sublayers = OrderedDict([
('conv1d', paddle.nn.Conv1D(3, 2, 3)),
('conv2d', paddle.nn.Conv2D(3, 2, 3)),
('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
])
layer_dict = paddle.nn.LayerDict(sublayers=sublayers) >>> sublayers = OrderedDict([
for v in layer_dict.values(): ... ('conv1d', paddle.nn.Conv1D(3, 2, 3)),
print(v) ... ('conv2d', paddle.nn.Conv2D(3, 2, 3)),
... ('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
>>> ])
#Conv1D(3, 2, kernel_size=[3], data_format=NCL) >>> layer_dict = paddle.nn.LayerDict(sublayers=sublayers)
#Conv2D(3, 2, kernel_size=[3, 3], data_format=NCHW) >>> for v in layer_dict.values():
#Conv3D(4, 6, kernel_size=[3, 3, 3], data_format=NCDHW) ... print(v)
Conv1D(3, 2, kernel_size=[3], data_format=NCL)
Conv2D(3, 2, kernel_size=[3, 3], data_format=NCHW)
Conv3D(4, 6, kernel_size=[3, 3, 3], data_format=NCDHW)
""" """
return self._sub_layers.values() return self._sub_layers.values()
...@@ -252,29 +249,29 @@ class LayerDict(Layer): ...@@ -252,29 +249,29 @@ class LayerDict(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
from collections import OrderedDict >>> from collections import OrderedDict
sublayers = OrderedDict([ >>> sublayers = OrderedDict([
('conv1d', paddle.nn.Conv1D(3, 2, 3)), ... ('conv1d', paddle.nn.Conv1D(3, 2, 3)),
('conv2d', paddle.nn.Conv2D(3, 2, 3)), ... ('conv2d', paddle.nn.Conv2D(3, 2, 3)),
('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))), ... ('conv3d', paddle.nn.Conv3D(4, 6, (3, 3, 3))),
]) >>> ])
new_sublayers = OrderedDict([ >>> new_sublayers = OrderedDict([
('relu', paddle.nn.ReLU()), ... ('relu', paddle.nn.ReLU()),
('conv2d', paddle.nn.Conv2D(4, 2, 4)), ... ('conv2d', paddle.nn.Conv2D(4, 2, 4)),
]) >>> ])
layer_dict = paddle.nn.LayerDict(sublayers=sublayers) >>> layer_dict = paddle.nn.LayerDict(sublayers=sublayers)
layer_dict.update(new_sublayers) >>> layer_dict.update(new_sublayers)
for k, v in layer_dict.items(): >>> for k, v in layer_dict.items():
print(k, ":", v) ... print(f"{k}:", v)
#conv1d : Conv1D(3, 2, kernel_size=[3], data_format=NCL) conv1d : Conv1D(3, 2, kernel_size=[3], data_format=NCL)
#conv2d : Conv2D(4, 2, kernel_size=[4, 4], data_format=NCHW) conv2d : Conv2D(4, 2, kernel_size=[4, 4], data_format=NCHW)
#conv3d : Conv3D(4, 6, kernel_size=[3, 3, 3], data_format=NCDHW) conv3d : Conv3D(4, 6, kernel_size=[3, 3, 3], data_format=NCDHW)
#relu : ReLU() relu : ReLU()
""" """
...@@ -311,44 +308,49 @@ class ParameterList(Layer): ...@@ -311,44 +308,49 @@ class ParameterList(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
class MyLayer(paddle.nn.Layer): >>> class MyLayer(paddle.nn.Layer):
def __init__(self, num_stacked_param): ... def __init__(self, num_stacked_param):
super().__init__() ... super().__init__()
# create ParameterList with iterable Parameters ... # create ParameterList with iterable Parameters
self.params = paddle.nn.ParameterList( ... self.params = paddle.nn.ParameterList(
[paddle.create_parameter( ... [paddle.create_parameter(
shape=[2, 2], dtype='float32')] * num_stacked_param) ... shape=[2, 2], dtype='float32')] * num_stacked_param)
...
def forward(self, x): ... def forward(self, x):
for i, p in enumerate(self.params): ... for i, p in enumerate(self.params):
tmp = self._helper.create_variable_for_type_inference('float32') ... tmp = self._helper.create_variable_for_type_inference('float32')
self._helper.append_op( ... self._helper.append_op(
type="mul", ... type="mul",
inputs={"X": x, ... inputs={"X": x,
"Y": p}, ... "Y": p},
outputs={"Out": tmp}, ... outputs={"Out": tmp},
attrs={"x_num_col_dims": 1, ... attrs={"x_num_col_dims": 1,
"y_num_col_dims": 1}) ... "y_num_col_dims": 1})
x = tmp ... x = tmp
return x ... return x
...
x = paddle.uniform(shape=[5, 2], dtype='float32') >>> x = paddle.uniform(shape=[5, 2], dtype='float32')
num_stacked_param = 4 >>> num_stacked_param = 4
model = MyLayer(num_stacked_param) >>> model = MyLayer(num_stacked_param)
print(len(model.params)) # 4 >>> print(len(model.params))
res = model(x) 4
print(res.shape) # [5, 2] >>> res = model(x)
>>> print(res.shape)
replaced_param = paddle.create_parameter(shape=[2, 3], dtype='float32') [5, 2]
model.params[num_stacked_param - 1] = replaced_param # replace last param
res = model(x) >>> replaced_param = paddle.create_parameter(shape=[2, 3], dtype='float32')
print(res.shape) # [5, 3] >>> model.params[num_stacked_param - 1] = replaced_param # replace last param
model.params.append(paddle.create_parameter(shape=[3, 4], dtype='float32')) # append param >>> res = model(x)
print(len(model.params)) # 5 >>> print(res.shape)
res = model(x) [5, 3]
print(res.shape) # [5, 4] >>> model.params.append(paddle.create_parameter(shape=[3, 4], dtype='float32')) # append param
>>> print(len(model.params))
5
>>> res = model(x)
>>> print(res.shape)
[5, 4]
""" """
def __init__(self, parameters=None): def __init__(self, parameters=None):
...@@ -395,19 +397,19 @@ class LayerList(Layer): ...@@ -395,19 +397,19 @@ class LayerList(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
class MyLayer(paddle.nn.Layer): >>> class MyLayer(paddle.nn.Layer):
def __init__(self): ... def __init__(self):
super().__init__() ... super().__init__()
self.linears = paddle.nn.LayerList( ... self.linears = paddle.nn.LayerList(
[paddle.nn.Linear(10, 10) for i in range(10)]) ... [paddle.nn.Linear(10, 10) for i in range(10)])
...
def forward(self, x): ... def forward(self, x):
# LayerList can act as an iterable, or be indexed using ints ... # LayerList can act as an iterable, or be indexed using ints
for i, l in enumerate(self.linears): ... for i, l in enumerate(self.linears):
x = self.linears[i // 2](x) + l(x) ... x = self.linears[i // 2](x) + l(x)
return x ... return x
""" """
def __init__(self, sublayers=None): def __init__(self, sublayers=None):
...@@ -467,12 +469,13 @@ class LayerList(Layer): ...@@ -467,12 +469,13 @@ class LayerList(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)]) >>> linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)])
another = paddle.nn.Linear(10, 10) >>> another = paddle.nn.Linear(10, 10)
linears.append(another) >>> linears.append(another)
print(len(linears)) # 11 >>> print(len(linears))
11
""" """
self.add_sublayer(str(len(self)), sublayer) self.add_sublayer(str(len(self)), sublayer)
return self return self
...@@ -488,15 +491,17 @@ class LayerList(Layer): ...@@ -488,15 +491,17 @@ class LayerList(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)]) >>> linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)])
another = paddle.nn.Linear(10, 10) >>> another = paddle.nn.Linear(10, 10)
linears.insert(3, another) >>> linears.insert(3, another)
print(linears[3] is another) # True >>> print(linears[3] is another)
another = paddle.nn.Linear(10, 10) True
linears.insert(-1, another) >>> another = paddle.nn.Linear(10, 10)
print(linears[-2] is another) # True >>> linears.insert(-1, another)
>>> print(linears[-2] is another)
True
""" """
assert isinstance(index, int) and -len(self._sub_layers) <= index < len( assert isinstance(index, int) and -len(self._sub_layers) <= index < len(
self._sub_layers self._sub_layers
...@@ -519,13 +524,15 @@ class LayerList(Layer): ...@@ -519,13 +524,15 @@ class LayerList(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)]) >>> linears = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(10)])
another_list = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(5)]) >>> another_list = paddle.nn.LayerList([paddle.nn.Linear(10, 10) for i in range(5)])
linears.extend(another_list) >>> linears.extend(another_list)
print(len(linears)) # 15 >>> print(len(linears))
print(another_list[0] is linears[10]) # True 15
>>> print(another_list[0] is linears[10])
True
""" """
offset = len(self) offset = len(self)
for i, sublayer in enumerate(sublayers): for i, sublayer in enumerate(sublayers):
...@@ -545,24 +552,24 @@ class Sequential(Layer): ...@@ -545,24 +552,24 @@ class Sequential(Layer):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle >>> import paddle
data = paddle.uniform(shape=[30, 10], dtype='float32') >>> data = paddle.uniform(shape=[30, 10], dtype='float32')
# create Sequential with iterable Layers >>> # create Sequential with iterable Layers
model1 = paddle.nn.Sequential( >>> model1 = paddle.nn.Sequential(
paddle.nn.Linear(10, 1), paddle.nn.Linear(1, 2) ... paddle.nn.Linear(10, 1), paddle.nn.Linear(1, 2)
) >>> )
model1[0] # access the first layer >>> model1[0] # access the first layer
res1 = model1(data) # sequential execution >>> res1 = model1(data) # sequential execution
# create Sequential with name Layer pairs >>> # create Sequential with name Layer pairs
model2 = paddle.nn.Sequential( >>> model2 = paddle.nn.Sequential(
('l1', paddle.nn.Linear(10, 2)), ... ('l1', paddle.nn.Linear(10, 2)),
('l2', paddle.nn.Linear(2, 3)) ... ('l2', paddle.nn.Linear(2, 3))
) >>> )
model2['l1'] # access l1 layer >>> model2['l1'] # access l1 layer
model2.add_sublayer('l3', paddle.nn.Linear(3, 3)) # add sublayer >>> model2.add_sublayer('l3', paddle.nn.Linear(3, 3)) # add sublayer
res2 = model2(data) # sequential execution >>> res2 = model2(data) # sequential execution
""" """
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册