def __init__(self, filters, kernel_size, activation=None, use_bias=True, kernel_initializer='uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, align_corners=True, coordinate_mapping='ball_to_cube_radial', interpolation='linear', normalize=True, radius_search_ignore_query_points=False, radius_search_metric='L2', offset=None, window_function=None, use_dense_layer_for_center=False, in_channels=None, **kwargs): from tensorflow.keras import activations, initializers, regularizers self.filters = filters self.kernel_size = kernel_size self.activation = activations.get(activation) self.use_bias = use_bias self.kernel_initializer = initializers.get(kernel_initializer) self.bias_initializer = initializers.get(bias_initializer) self.kernel_regularizer = regularizers.get(kernel_regularizer) self.bias_regularizer = regularizers.get(bias_regularizer) self.align_corners = align_corners self.coordinate_mapping = coordinate_mapping self.interpolation = interpolation self.normalize = normalize self.radius_search_ignore_query_points = radius_search_ignore_query_points self.radius_search_metric = radius_search_metric if offset is None: self.offset = tf.zeros(shape=(3, )) else: self.offset = offset self.window_function = window_function self.fixed_radius_search = layers.FixedRadiusSearch( metric=self.radius_search_metric, ignore_query_point=self.radius_search_ignore_query_points, return_distances=not self.window_function is None) self.radius_search = layers.RadiusSearch( metric=self.radius_search_metric, ignore_query_point=self.radius_search_ignore_query_points, return_distances=not self.window_function is None, normalize_distances=not self.window_function is None) self.use_dense_layer_for_center = use_dense_layer_for_center if self.use_dense_layer_for_center: self.dense = tf.keras.layers.Dense(self.filters, use_bias=False) super().__init__(**kwargs)
def __init__(self, filters, kernel_size, activation=None, use_bias=True, kernel_initializer='uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, normalize=False, offset=None, in_channels=None, **kwargs): from tensorflow.keras import activations, initializers, regularizers self.filters = filters self.kernel_size = kernel_size self.activation = activations.get(activation) self.use_bias = use_bias self.kernel_initializer = initializers.get(kernel_initializer) self.bias_initializer = initializers.get(bias_initializer) self.kernel_regularizer = regularizers.get(kernel_regularizer) self.bias_regularizer = regularizers.get(bias_regularizer) self.normalize = normalize if not (np.asarray(kernel_size) == kernel_size[0]).all(): raise Exception("Only cubic kernel sizes are supported.") if offset is None: if kernel_size[0] % 2: self.offset = tf.zeros(shape=(3, )) else: self.offset = tf.fill([3], -0.5) else: self.offset = offset self.fixed_radius_search = layers.FixedRadiusSearch( metric='Linf', ignore_query_point=False, return_distances=False) super().__init__(**kwargs)