-
问题描述:Fluid版本的PaddlePaddle如何自定义模型的权重?想要实现:x = MW + b,其中M是一个m * n的矩阵数据,W(n * 1)、b (m * 1)是自定义的权重。
-
问题分析:
在Fluid版本中自定义权重可以通过fluid.param_attr.ParamAttr()
方法的initializer参数实现,本地就是将自定义的值赋值给该节点,实现自定义模型权重的目的。
- 解决方法:
自定义权重的实例代码如下:
import paddle.fluid as fluid
import paddle
import numpy as np
def test_initializer(self):
def initializer(name):
assert name == 'fc.w'
mat = np.ones((3,2), dtype=np.float32)
mat[1,1] = 2
return mat
x = fluid.layers.data(name='x', dtype='float32')
y = fluid.layers.fc(input=x, size=2, param_attr=fluid.param_attr.ParamAttr(
name='fc.w', initializer=initializer
))