手里有三个transformer(设为A,B,C)希望一起训练,其中希望B和C共享参数,A自己一份参数。但是我看到paddle的transformer实现里都是用param_attr来命名了每个参数的名字的,因此直接建好3个transformer后这3份参数是共享的,现在希望A不跟它们共享,该怎么做呢?
(在Tensorflow中可以通过tf.variable_scope轻松实现这个操作,但是paddle中没找到相关的API
30byixjq1#
您在运行网络的时候,可以加上scope_guard:
scope_guard
a_scope = fluid.Scope() with fluid.scope_guard(a_scope): exe.run(a_program, ...) exe.run(b_program, ...) exe.run(c_program, ...)
qlckcl4x2#
这种方法试过,多个program的时候会显存溢出,所以把三个transformer写进了同一个program里。。在同一个prog内部,有办法完成A的参数跟BC隔离吗
2条答案
按热度按时间30byixjq1#
您在运行网络的时候,可以加上
scope_guard
:qlckcl4x2#
这种方法试过,多个program的时候会显存溢出,所以把三个transformer写进了同一个program里。。在同一个prog内部,有办法完成A的参数跟BC隔离吗