为喀拉拉邦的各层设置权重背后的意义是什么?

时间:2019-12-09 17:03:34

标签: python tensorflow keras deep-learning

我在像任务这样的转移学习中难以理解体重转移...

我训练了两个网络,并使用带有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

这似乎也没有意义的重量转移。

  1. 我应该从旧网络转移到新网络,以带走实际上占整个网络一半的感觉?

  2. 只有权重(和偏差)携带所有信息吗?我还应该分配什么以具有理论上相同的层?

  3. get_leyer返回什么?

  4. get_weight / set_weight是否与load_weight相同?

0 个答案:

没有答案