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