Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions doc/fluid/api_cn/layers_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3532,7 +3532,7 @@ fc

**全连接层**

该函数在神经网络中建立一个全连接层。 它可以同时将多个tensor作为自己的输入,并为每个输入的tensor创立一个变量,称为“权”(weights),等价于一个从每个输入单元到每个输出单元的全连接权矩阵。FC层用每个tensor和它对应的权相乘得到输出tensor。如果有多个输入tensor,那么多个乘法运算将会加在一起得出最终结果。如果 ``bias_attr`` 非空,则会新创建一个偏向变量(bias variable),并把它加入到输出结果的运算中。最后,如果 ``act`` 非空,它也会加入最终输出的计算中。
该函数在神经网络中建立一个全连接层。 它可以同时将多个tensor( ``input`` 可使用多个tensor组成的一个list,详见参数说明)作为自己的输入,并为每个输入的tensor创立一个变量,称为“权”(weights),等价于一个从每个输入单元到每个输出单元的全连接权矩阵。FC层用每个tensor和它对应的权相乘得到输出tensor。如果有多个输入tensor,那么多个乘法运算将会加在一起得出最终结果。如果 ``bias_attr`` 非空,则会新创建一个偏向变量(bias variable),并把它加入到输出结果的运算中。最后,如果 ``act`` 非空,它也会加入最终输出的计算中。

这个过程可以通过如下公式表现:
Copy link

Choose a reason for hiding this comment

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

我认为这个公式没有说得特别清楚:
(1)如果X是一个tensor的list,那么应该明确X是tensor列表,X_i 是列表中一个tensor; 对应的 W是权值列表,W_i 是列表中的一个权值(就是这里很疑惑,现在公式里W_i 与 X_i 做矩阵乘法,但是下面说W又是权值,而不是权值列表)
(2)如果X是一个tensor,这种情况下的公式是怎样的呢?或者说,介绍里说“可以同时是tensor列表”,那是否可以不是“tensor列表”,如果不是,公式是怎样的呢,我觉得需要说清楚

Copy link
Contributor

Choose a reason for hiding this comment

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

已加icafe需求


Expand Down Expand Up @@ -3619,11 +3619,13 @@ flatten
Out.shape = (1, 3 * 100 * 100 * 4)

参数:
- **x** (Variable): 一个秩>=axis 的张量
- **axis** (int):指出应该将哪些输入维度(唯一的) flatten 到输出的外部维度。axis的值必须在[0,R]范围内,其中R是输入张量的秩。当 axis= 0 时,输出张量的形状为(1,(d_0 X d_1…),其中输入张量的形状为(d_0, d_1,…)d_n)。
- **name** (str|None):此层的名称(可选)。如果没有设置,层将自动命名。
- **x** (Variable) - 一个秩>=axis 的张量
- **axis** (int) - flatten的划分轴,[0, axis) 轴数据被flatten到输出矩阵的0轴,[axis, R)被flatten到输出矩阵的1轴,其中R是输入张量的秩。axis的值必须在[0,R]范围内。当 axis= 0 时,输出张量的形状为 (1,d_0 \* d_1 \*… d_n) ,其输入张量的形状为(d_0, d_1,… d_n)。
- **name** (str|None) - 此层的名称(可选)。如果没有设置,层将自动命名。

返回: 一个二维张量,它包含输入张量的内容,但维数发生变化。输入的[0, axis)维将沿给定轴flatten到输出的前一个维度,剩余的输入维数flatten到输出的后一个维度。

返回:Variable: 一个二维张量,它包含输入张量的内容,输入维数将沿给定轴flatten到输出的外部维度,剩余的输入维数flatten到输出的内部维数。
返回类型: Variable

抛出异常:
- ValueError: 如果 x 不是一个变量
Expand Down Expand Up @@ -6396,7 +6398,7 @@ reshape
- **shape** (list) - 新的形状。新形状最多只能有一个维度为-1。
- **actual_shape** (variable) - 一个可选的输入。如果提供,则根据 ``actual_shape`` 进行 reshape,而不是指定 ``shape`` 。也就是说,actual_shape具有比shape更高的优先级。
- **act** (str) - 对reshpe后的tensor变量执行非线性激活
- **inplace** (bool) - 如果在多个操作符中使用x,则 ``inplace`` 必须设置为False。如果该标志设置为True,则重用输入x进行reshape,这将改变张量变量x的形状,并可能在多个操作符中使用x时造成错误。如果为False,则保留形状x,并创建一个新的输出张量变量,该张量变量的数据是从输入x复制的,但经过了重构
- **inplace** (bool) - 如果在多个操作符中使用x,则 ``inplace`` 必须设置为False。如果该标志设置为True,则直接对输入x本身进行reshape操作,张量变量x的形状将会被改变,因此在其他操作中再使用x时会造成错误。如果为False,则保留输入变量x的原形状,并输出一个新的张量变量,该张量变量的数据是从输入x复制的,但是其形状已经经过reshape操作进行重构
- **name** (str) - 可选变量,此层的名称

返回:如果 ``act`` 为 ``None``,返回reshape后的tensor变量。如果 ``inplace`` 为 ``False`` ,将返回一个新的Tensor变量,否则,将改变x自身。如果 ``act`` 不是 ``None`` ,则返回激活的张量变量。
Expand Down