Я хочу инициализировать ядро уровня свертки сети, которое делает вывод симметричным в обучении.Поэтому я пытался инициализировать ядро следующим образом:
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, ...)
Мне нужно, чтобы выходные данные сети были симметричными при обучении.Можно ли в любом случае обновить ядро в обучении, чтобы сохранить симметрию, заданную в my_initkernel в керасе?