如何解决Keras 如何为下载的模型强制执行 BatchNormalization 的零伽马初始化
我想为下载的模型更改 Batchnormalization
层的默认伽玛初始化。
例如:
我有一个下载的 EfficientNetB0 模型:
from tensorflow.python.keras.applications.efficientnet import EfficientNetB0
model = EfficientNetB0(include_top=False,weights=None,input_shape=(200,200,3))
下载后已经用gamma = 1
初始化:
for layer in model.layers:
if isinstance(layer,Batchnormalization):
pprint(layer.gamma.numpy())
break
# prints:
# array([1.,1.,# 1.,1.],# dtype=float32)
所以像下面这样的代码不起作用:
from tensorflow.keras.layers import Batchnormalization
for layer in model.layers:
if isinstance(layer,Batchnormalization):
layer.gamma_initializer = 'zeros'
# layer.gamma.numpy() is still:
# array([1.,# dtype=float32)
有没有办法强制零伽马初始化?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。