【发布时间】:2019-09-19 05:59:49
【问题描述】:
我使用监督学习训练了网络并保存了它的权重,现在我创建了一个带有附加层的新网络(新网络包含旧网络的相同层并有附加层),我需要将所有旧网络权重转移到新网络并随机初始化新的附加层,但是当我使用新权重时,它需要随机预测(权重是随机初始化的)。旧网络的 weights.h5 与磁盘中新网络的 weights.h5 大小不同。
from keras import layers, models, optimizers
from keras import backend as K
import numpy as np
from keras.models import Model, load_model
import keras.losses
model = load_model("nvidia_41_named.h5") #the old network
model.load_weights("nvidia_41_named_weights.h5") # the old weights
actor=load_model("actormodel.h5") #the new network
for layer in model.layers :
name = layer.name
for lay in actor.layers :
if lay.name == name:
print(lay.name)
weights = model.get_layer(name).get_weights()
actor.get_layer(name).set_weights(weights)
print(lay.name,'correctly transferred')
print("========================================")
【问题讨论】:
标签: python tensorflow machine-learning keras deep-learning