我想初始化网络卷积层的内核,使训练中的输出对称。因此,我尝试按以下方式初始化内核:
def my_initkernel(shape, dtype=None):
i1 = K.random_normal(shape, dtype=dtype)
s = list(shape)
channelsize = s[2]
out1 = i1[:,:,0:int(channelsize/2),:]
out= K.concatenate([out1, out1], axis=-2)
outtranspose = (0.5)*K.permute_dimensions(out,(1,0,2,3))
out = (0.5)*out
return out + outtranspose
output= Conv2D(filters=1, kernel_size=9,kernel_initializer=my_initkernel, ...)
我需要网络的输出在训练时对称。无论如何,我可以在培训中更新内核以保持keras中的my_initkernel中给出的对称性吗?