我想将权重从模型A加载到模型B。模型B的最后几层有点不同,因此不应该加载这些层的权重。我使用带有参数的load_weights,这样就可以跳过不同的层。
load_weights( filepath, by_name=True, skip_mismatch=True)
有没有办法知道正确装载的重量部分?我只想确保90%以上的重量都能正确加载。
您可以使用numpy.testing
来检查两个模型的权重之间的差异。例如,
np.testing.assert_allclose(
A_model.layers[0].bias.numpy(), B_model.layers[0].bias.numpy()
)
np.testing.assert_allclose
可以给出%
不匹配的元素:
a = [1.0, 2, 3]
b = np.array([1.0, 8, 9])
try:
np.testing.assert_allclose(a, b)
except Exception as e:
print(e)
异常打印
Not equal to tolerance rtol=1e-07, atol=0
Mismatched elements: 2 / 3 (66.7%)
Max absolute difference: 6.
Max relative difference: 0.75
x: array([1., 2., 3.])
y: array([1., 8., 9.])