def __init__(self, rank, filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer=None, bias_initializer=init_ops.zeros_initializer(), kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, trainable=True, name=None, **kwargs): super(_Conv, self).__init__(trainable=trainable, name=name, **kwargs) self.rank = rank self.filters = filters self.kernel_size = utils.normalize_tuple(kernel_size, rank, 'kernel_size') self.strides = utils.normalize_tuple(strides, rank, 'strides') self.padding = utils.normalize_padding(padding) self.data_format = utils.normalize_data_format(data_format) self.dilation_rate = utils.normalize_tuple(dilation_rate, rank, 'dilation_rate') self.activation = activation self.use_bias = use_bias self.kernel_initializer = kernel_initializer self.bias_initializer = bias_initializer self.kernel_regularizer = kernel_regularizer self.bias_regularizer = bias_regularizer self.activity_regularizer = activity_regularizer self.input_spec = base.InputSpec(ndim=self.rank + 2)
def build(self, input_shape): input_shape = tensor_shape.TensorShape(input_shape) if input_shape[-1].value is None: raise ValueError('The last dimension of the inputs to `Dense` ' 'should be defined. Found `None`.') self.input_spec = base.InputSpec(min_ndim=2, axes={-1: input_shape[-1].value}) self.kernel = self.add_variable( 'kernel', shape=[input_shape[-1].value, self.units], initializer=self.kernel_initializer, regularizer=self.kernel_regularizer, dtype=self.dtype, trainable=True) if self.use_bias: self.bias = self.add_variable('bias', shape=[ self.units, ], initializer=self.bias_initializer, regularizer=self.bias_regularizer, dtype=self.dtype, trainable=True) else: self.bias = None self.built = True
def __init__(self, pool_function, pool_size, strides, padding='valid', data_format='channels_last', name=None, **kwargs): super(_Pooling2D, self).__init__(name=name, **kwargs) self.pool_function = pool_function self.pool_size = utils.normalize_tuple(pool_size, 2, 'pool_size') self.strides = utils.normalize_tuple(strides, 2, 'strides') self.padding = utils.normalize_padding(padding) self.data_format = utils.normalize_data_format(data_format) self.input_spec = base.InputSpec(ndim=4)
def build(self, input_shape): input_shape = tensor_shape.TensorShape(input_shape) if not input_shape.ndims: raise ValueError('Input has undefined rank:', input_shape) ndim = input_shape.ndims if self.axis < 0: axis = ndim + self.axis else: axis = self.axis if axis < 0 or axis >= ndim: raise ValueError('Value of `axis` argument ' + str(self.axis) + ' is out of range for input with rank ' + str(ndim)) if axis + 1 == ndim: self._data_format = 'NHWC' elif axis == 1: self._data_format = 'NCHW' else: raise ValueError( 'Only axis 1 or last axis are currently supported dimensions for ' 'batch norm. Got `axis` dimension: ', axis) param_dim = input_shape[axis] if not param_dim.value: raise ValueError('Input has undefined `axis` dimension. Input shape: ', input_shape) self.input_spec = base.InputSpec(ndim=ndim, axes={self.axis: param_dim.value}) self.moving_mean = self.add_variable( name='moving_mean', shape=(param_dim.value,), initializer=self.moving_mean_initializer, trainable=False) self.moving_variance = self.add_variable( name='moving_variance', shape=(param_dim.value,), initializer=self.moving_variance_initializer, trainable=False) self.gamma = self.add_variable( name='gamma', shape=(param_dim.value,), initializer=self.gamma_initializer, regularizer=self.gamma_regularizer, trainable=self.scale) self.beta = self.add_variable( name='beta', shape=(param_dim.value,), initializer=self.beta_initializer, regularizer=self.beta_regularizer, trainable=self.center) self.built = True
def build(self, input_shape): input_shape = tensor_shape.TensorShape(input_shape) if self.data_format == 'channels_first': channel_axis = 1 else: channel_axis = -1 if input_shape[channel_axis].value is None: raise ValueError('The channel dimension of the inputs ' 'should be defined. Found `None`.') input_dim = input_shape[channel_axis].value if self.data_format == 'channels_first': # For channels first: (n_out, n_in, k_h, k_w) kernel_shape = (self.filters, input_dim) + self.kernel_size else: # For channels last: (k_h, k_w, n_in, n_out) kernel_shape = self.kernel_size + (input_dim, self.filters) self.kernel = self.add_variable( name='kernel', shape=kernel_shape, initializer=self.kernel_initializer, regularizer=self.kernel_regularizer, dtype=self.dtype, ) if self.use_bias: self.bias = self.add_variable( name='bias', shape=(self.filters, ), initializer=self.bias_initializer, regularizer=self.bias_regularizer, dtype=self.dtype, ) else: self.bias = None self.input_spec = base.InputSpec(ndim=self.rank + 2, axes={channel_axis: input_dim}) self.built = True
def __init__(self, units, activation=None, use_bias=True, kernel_initializer=None, bias_initializer=init_ops.zeros_initializer(), kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, trainable=True, name=None, **kwargs): super(Dense, self).__init__(trainable=trainable, name=name, **kwargs) self.units = units self.activation = activation self.use_bias = use_bias self.kernel_initializer = kernel_initializer self.bias_initializer = bias_initializer self.kernel_regularizer = kernel_regularizer self.bias_regularizer = bias_regularizer self.activity_regularizer = activity_regularizer self.input_spec = base.InputSpec(min_ndim=2)