首页 Paddle框架 帖子详情
当搭建神经网络时候,遇到PaddlePaddle中没有集成的功能模块怎么办? 已解决
收藏
快速回复
Paddle框架 文章学习资料 1017 2
当搭建神经网络时候,遇到PaddlePaddle中没有集成的功能模块怎么办? 已解决
收藏
快速回复
Paddle框架 文章学习资料 1017 2

在PaddlePaddle中集成了类似Conv2D、Linear等子层,但是在深度学习实践中,遇到了PaddlePaddle中还没有集成的子层怎么办呢?

首先我们必须弄清楚PaddlePaddle中集成的子层的实质是什么。不同的子层实质上是不同的部分参数初始化及前向计算流程的封装。因此,遇到PaddlePaddle中维集成的子层,我们可以自己定义参数,并实现前向计算流程,封装成自己的子层。具体方法如下:

class LinearLayer(paddle.nn.Layer):
 def __init__(self, input_features, output_features):
     super(LinearLayer, self).__init__()

     # 自定义参数
     w = self.create_parameter(shape=[input_features, output_features])
     b = self.create_parameter(shape=[output_features], is_bias=True)
     self.add_parameter('w', w)
     self.add_parameter('b', b)

 def forward(self, x):
     x = paddle.matmul(x, self.w)
     x = x + self.b
     return x

好的,讲完,新技能Got!

DeepGeGe
已解决
2# 回复于2021-12
再说一句,如果自己想要的功能模块,不是能够由PaddlePaddle中定义的加减乘除等操作组合而成的,那就得参考文档中的自定义算子了,不过这种情况很罕见,一般是上述情况较常见。
0
收藏
回复
全部评论(2)
时间顺序
DeepGeGe
#2 回复于2021-12

再说一句,如果自己想要的功能模块,不是能够由PaddlePaddle中定义的加减乘除等操作组合而成的,那就得参考文档中的自定义算子了,不过这种情况很罕见,一般是上述情况较常见。

0
回复
JavaRoom
#3 回复于2021-12

干得漂亮,自定义算子、自定义网络层

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户