迁移学习,加载部分模型参数问题
Created by: rayliu3798
想要只加载部分模型参数,然后看到Issue#12428中的这个例子, SE_ResNeXt50的例子
但是里面有一段不能理解: 在函数 network(image, train_base_model=False) 中,
# 复制一个只包含base_model的program,放便只加载需要的参数
base_model_program = fluid.default_main_program().clone()
然后加载参数的时候是加载在这个克隆出来的base_model_program中,
# 加载参数
load_pretrained_params(exe, base_model_program)
但是训练的时候是训练的另一个添加了fc层的program。
查了API说clone()是“创建一个新的、相同的Program”,说明这个clone的program应该是一个独立的program。那这个参数是怎么加载到模型里的呢?