Paddle paddle中如何实现批量的参数复用?

jyztefdp  于 2022-04-21  发布在  Java
关注(0)|答案(2)|浏览(270)

手里有三个transformer(设为A,B,C)希望一起训练,其中希望B和C共享参数,A自己一份参数。但是我看到paddle的transformer实现里都是用param_attr来命名了每个参数的名字的,因此直接建好3个transformer后这3份参数是共享的,现在希望A不跟它们共享,该怎么做呢?

(在Tensorflow中可以通过tf.variable_scope轻松实现这个操作,但是paddle中没找到相关的API

30byixjq

30byixjq1#

您在运行网络的时候,可以加上scope_guard:

a_scope = fluid.Scope()
with fluid.scope_guard(a_scope):
    exe.run(a_program, ...)

exe.run(b_program, ...)
exe.run(c_program, ...)
qlckcl4x

qlckcl4x2#

这种方法试过,多个program的时候会显存溢出,所以把三个transformer写进了同一个program里。。在同一个prog内部,有办法完成A的参数跟BC隔离吗

相关问题