我在像任务这样的转移学习中难以理解体重转移...
我训练了两个网络,并使用带有tensorflow后端的keras保存了权重(两个网络在同一模型中)。我想使用一个网络中一半的层,而另一网络中一半的层,并将它们连接为一个新网络。实际上,我想剪切两个网络并将它们加入一个新网络,并丢弃剩余的层。由于一半的层是顶层,因此我无法使用.pop()来完成此操作,因此我决定转移权重。
我通过在旧模型的每一层(我需要的每一层)中为新模型中的相应层设置了相应的权重来进行尝试,例如:
new_model.layers[i].set_weights(model.layers[i].get_weights())
但是,这会加载权重,但似乎无法按我预期的那样工作。
然后我尝试了get_layer:
new_model.layers[i] = model.get_layer('name').output
这似乎也没有意义的重量转移。
我应该从旧网络转移到新网络,以带走实际上占整个网络一半的感觉?
只有权重(和偏差)携带所有信息吗?我还应该分配什么以具有理论上相同的层?
get_leyer返回什么?
get_weight / set_weight是否与load_weight相同?