在 TF2 中重新初始化某些层的权重的正确方法是什么?
TF1 存在一个有效的方法: https ://stackoverflow.com/a/51727616/11836236
以及 TF2 的一些解决方法: https ://stackoverflow.com/a/57826239/11836236 但此解决方案不使用在每一层中指定的初始化程序。
在 TF2 中重新初始化某些层的权重的正确方法是什么?
TF1 存在一个有效的方法: https ://stackoverflow.com/a/51727616/11836236
以及 TF2 的一些解决方法: https ://stackoverflow.com/a/57826239/11836236 但此解决方案不使用在每一层中指定的初始化程序。
这对我来说适用于 tf 2.3.0:(从这个答案编辑)
for layer in model.layers:
if hasattr(layer, 'kernel_initializer') and \
hasattr(layer, 'bias_initializer'):
layer.set_weights([layer.kernel_initializer(shape=np.asarray(layer.kernel.shape)), \
layer.bias_initializer(shape=np.asarray(layer.bias.shape))])
希望它可能会有所帮助。