【发布时间】:2020-12-07 17:43:50
【问题描述】:
是否可以通过使用 set_weights 和 get_weights 方案从训练有素的网络将权重加载到我的新模型的最后一层? 关键是,我将每一层的权重保存为一个 mat 文件(训练后),以便在 Matlab 中进行一些计算,我只想将最后一层的修改后的权重加载到我的新模型和其他层的最后一层获得与训练模型相同的权重。这有点棘手,因为保存的格式是mat。
weights1 = lstm_model1.layers[0].get_weights()[0]
biases1 = lstm_model1.layers[0].get_weights()[1]
weights2 = lstm_model1.layers[2].get_weights()[0]
biases2 = lstm_model1.layers[2].get_weights()[1]
weights3 = lstm_model1.layers[4].get_weights()[0]
biases3 = lstm_model1.layers[4].get_weights()[1]
# Save the weights and biases for adaptation algorithm
savemat("weights1.mat", mdict={'weights1': weights1})
savemat("biases1.mat", mdict={'biases1': biases1})
savemat("weights2.mat", mdict={'weights2': weights2})
savemat("biases2.mat", mdict={'biases2': biases2})
savemat("weights3.mat", mdict={'weights3': weights3})
savemat("biases3.mat", mdict={'biases3': biases3})
如何将其他层的旧权重加载到新模型(没有最后一层),并将最后一层的修改权重加载到新模型的最后一层?
【问题讨论】:
标签: python python-3.x python-2.7 machine-learning keras