在Keras中是否可以创建卷积层(Conv2D
),以便根据初始化程序(例如he_normal
,glorot_uniform
等)对内核进行初始化,但是创建为每个内核都相同?
换句话说,我想使用kernel_initializer='he_normal'
初始化一个内核,然后复制并使用该初始化的权重矩阵在该层中初始化所有其他内核。
以半伪代码方式,这(在概念上类似于)我在寻找什么:
n_filters = 64
x = Conv2D(1, 3,... kernel_initializer='he_normal')
he_normal_kernel = *the kernel weight matrix that was just created* #copy kernel weight matrix
he_normal_kernels = he_normal_kernel * n_filters #make n_filters copies of that matrix
x = Conv2D(n_filters, 3,... kernel_initializer=he_normal_kernels) # use those as the initialization of our convolutional layer
只要它按预期工作,我对实现该目标的完全公正。
我们在这里的时候,有什么内在的理论上的原因说明为什么这可能是个坏主意吗?
谢谢!