我想从一个训练好的网络A中提取某一层中的n个参数子集,并将这个子集转移到另一个网络B的某一层中。在接收这个子集的层中,该层的剩余参数(总数 – 转移的子集)应随机初始化。
这是可行的吗?(我知道可以对整个参数层进行操作)
谢谢!
回答:
这可以在Python中实现。请参见网络手术教程。
基本操作是,你应该实例化两个caffe.Net对象,一个包含A的参数,另一个包含随机参数。然后你只需将A中的参数子集分配给B,保存B,操作就完成了。
我想从一个训练好的网络A中提取某一层中的n个参数子集,并将这个子集转移到另一个网络B的某一层中。在接收这个子集的层中,该层的剩余参数(总数 – 转移的子集)应随机初始化。
这是可行的吗?(我知道可以对整个参数层进行操作)
谢谢!
回答:
这可以在Python中实现。请参见网络手术教程。
基本操作是,你应该实例化两个caffe.Net对象,一个包含A的参数,另一个包含随机参数。然后你只需将A中的参数子集分配给B,保存B,操作就完成了。