paddle 基础函数 fc

官方文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/layers_cn/fc_cn.html#fc

 

示例:

import paddle.fluid as fluid
import numpy as np


# 当输入为单个张量时
data = fluid.data(name="data", shape=[1, 2, 3], dtype="float32")
#data = fluid.layers.data(name="data", shape=[1, 2, 3], dtype="float32", append_batch_size=False)
print(data.shape)

out = fluid.layers.fc(input=data, size=4, num_flatten_dims=2)

place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())

data_1 = np.array([[[0.1, 0.2, 0.25],
                    [0.3, 0.4, 0.5]]]).astype('float32')
print(data_1)
print(data_1.shape)

#data_1 = np.random.random(size=(1, 2, 3)).astype('float32')
#print(data_1)
#print(data_1.shape)

output = exe.run(feed={"data": data_1}, fetch_list = [out])
print(output)

官方文档 https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/layers_cn/data_cn.html#data 中不推荐使用 paddle.fluid.layers.data ,因其在之后的版本中会被删除。请使用 paddle.fluid.data 。

 

结果:

(1, 2, 3)

[[[0.1  0.2  0.25]
  [0.3  0.4  0.5 ]]]

(1, 2, 3)

[array([[[-0.01665314, -0.06591143,  0.15567407,  0.0315908 ],
        [-0.0708631 , -0.09518412,  0.3979489 ,  0.10654163]]],
      dtype=float32)]

 

示例2:

import paddle.fluid as fluid
import numpy as np

# 当输入为单个张量时
#data = fluid.data(name="data", shape=[-1, 4, 4], dtype="float32")
#fc = fluid.layers.fc(input=data, size=10, act="tanh", num_flatten_dims=1)
#fc = fluid.layers.fc(input=data, size=10, act="tanh", num_flatten_dims=2)


# 当输入为多个张量时
data_1 = fluid.data(name="data_1", shape=[-1, 4, 4], dtype="float32")
data_2 = fluid.data(name="data_2", shape=[-1, 4, 7], dtype="float32")
fc = fluid.layers.fc(input=[data_1, data_2], size=10, act="tanh", num_flatten_dims=2)


use_cuda = False
place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())

x = np.random.random(size=(2, 4, 4)).astype("float32")
y = np.random.random(size=(2, 4, 7)).astype("float32")
# num_flatten_dims=1时,x 与 y 的 batch_size 必须相等。
# num_flatten_dims=2时,x 与 y 的 batch_size 必须相等,且第2维参数也要相同。

output= exe.run(feed={"data_1":x, "data_2":y},
                fetch_list=[fc.name])
print(output)

结果:

[array([[[ 0.43396744, -0.09869403,  0.78911686, -0.448565  ,
         -0.9451803 , -0.35537675, -0.31206197, -0.9148217 ,
          0.2201621 , -0.8341073 ],
        [ 0.47531974,  0.2905832 ,  0.546974  , -0.6266268 ,
         -0.7724339 ,  0.39588565, -0.10089907, -0.8260868 ,
          0.25298518, -0.7880349 ],
        [-0.1264834 ,  0.02622051,  0.25237572, -0.20236889,
         -0.8779443 ,  0.04203564, -0.74966305, -0.75462556,
          0.34439033, -0.8292232 ],
        [-0.09280646,  0.08111441,  0.3787449 , -0.4057989 ,
         -0.57154334,  0.1496581 , -0.595759  , -0.10123701,
          0.17726052, -0.8555216 ]],

       [[ 0.3234643 , -0.3491477 , -0.00235462, -0.00101849,
         -0.9482162 , -0.04840872, -0.02319647, -0.67002887,
          0.38058218, -0.5499319 ],
        [-0.0376162 , -0.19537665,  0.42417863, -0.63395745,
         -0.8352363 ,  0.2921851 , -0.24062696, -0.4899596 ,
          0.2469159 , -0.85880464],
        [-0.2541329 , -0.6207021 ,  0.3414195 , -0.25696227,
         -0.75808513, -0.5182034 , -0.32643107, -0.58162224,
          0.17629907, -0.21283819],
        [ 0.5364003 , -0.03093212,  0.7685945 , -0.62906426,
         -0.87721866, -0.23352787, -0.6901016 , -0.6667141 ,
          0.16541354, -0.8501676 ]]], dtype=float32)]

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值