百度Paddle fluid.layers.fc API说明

学习百度的PaddlePaddle框架时,看到第一个线性回归的例子,对其中的fluid.layers.fc()函数使用有点困惑,查看官方API文档,感觉写的也不是特别清晰(可能是我理解的不好),经过一些思考后感觉应该是理解了,这里做一下总结。
下面是部分代码:

# 定义X数值
train_data=numpy.array([[1.0], [2.0], [3.0], [4.0]]).astype('float32')
# 定义期望预测的真实值y_true
y_true = numpy.array([[2.0], [4.0], [6.0], [8.0]]).astype('float32')

# 定义输入数据类型
x = fluid.data(name="x", shape=[None, 1], dtype='float32')
y = fluid.data(name="y", shape=[None, 1], dtype='float32')
# 搭建全连接网络
y_predict = fluid.layers.fc(input=x, size=1, act=None)

fluid.layers.fc接口如下

paddle.fluid.layers.fc(input, size, num_flatten_dims=1, param_attr=None, bias_attr=None, act=None, name=None)

参数说明:
input :多维Tensor或多个Tensor组成的list,输入Tensor的shape至少是2。
size: 全连接层输出单元的数目,即输出Tensor的特征维度。
num_flatten_dims(int):在计算时,输入首先会被扁平化(flatten)为一个二维矩阵,之后再与权重(weights)相乘。参数 num_flatten_dims 决定了输入Tensor的flatten方式。
param_attr:指定权重参数属性的对象。默认值为None,表示使用默认的权重参数属性。
bias_attr:指定偏置参数属性的对象。默认值为None,表示使用默认的偏置参数属性。
act:应用于输出上的激活函数,如tanh、softmax、sigmoid,relu等。
name(str,可选):一般无需设置,默认值为None。

fluid.layers.fc函数重点是前三个参数,输入Tensor的shape至少是2是理解这个API的核心,具体是不管输入Tensor的shape是多少,都会根据num_flatten_dims扁平化为二维矩阵,其中第一维是batch_size,第二维是输入Tensor的特征维度,计算时与一个权重矩阵相乘,输出shape为 [batch_size,size]的Tensor。

例如, 假设X是一个五维的Tensor,其shape为(2, 3, 4, 5, 6), 若 num_flatten_dims=3,则扁平化的矩阵shape为: (2x3x4,5x6)=(24,30) ,最终输出Tensor的shape为 (24,size) 。

  • 14
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值