- 问题描述:
我使用fluid构造了一个网络模型,如:
conv1 = fluid.layers.conv2d(X, 64, 9,act=‘relu’, name=‘conv1’ ,
param_attr= fluid.ParamAttr(name=‘conv1_w’))
然后获取variable:
conv1_w = fluid.get_var(‘conv1_w’)
我希望使用numpy数组对这个参数进行赋值,要如何做呢?
我查到资料说,可以使用 paddle.parameters.Parameters.set 进行赋值。但是我使用fluid.get_var获取到的对象不是paddle.parameters.Parameters类型的,没有set方法…
- 问题解答:
Fluid中,为Variable赋值的方法如下,主要逻辑就是fluid.global_scope().find_var()找到模型结构中对应节点,然后通过get_tensor()方法获得对应的tensor对象,接着就可以使用set()方法对其进行赋值
embedding_param = fluid.global_scope().find_var(
embedding_name).get_tensor()
embedding_param.set(
load_parameter(conll05.get_embedding(), word_dict_len, word_dim),
place)