def __init__(self, values, ref_img, kern_std, norm_type="sym",
name=None, trainable_kernels=False, _bilateral=False):
assert(norm_type in ["sym", "pre", "post", None])
super(GaussianFilterLayer, self).__init__(incomings=[values, ref_img],
name=name)
self.val_dim = ll.get_output_shape(values)[1]
self.ref_dim = ll.get_output_shape(ref_img)[1]
if None in (self.val_dim, self.ref_dim):
raise ValueError("Gaussian filtering requires known channel \
dimensions for all inputs.")
self.norm_type = norm_type
if _bilateral:
self.ref_dim += 2
if len(kern_std) != self.ref_dim:
raise ValueError("Number of kernel weights must match reference \
dimensionality. Got %d weights for %d reference dims." % (len(kern_std),
self.ref_dim))
self.kern_std = self.add_param(kern_std, (self.ref_dim,),
name="kern_std",
trainable=trainable_kernels,
regularizable=False)
评论列表
文章目录