Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def config_cpp(self):
params = self._default_config_params()
for i in range(3):
params.setdefault('n_elem1_{}'.format(i), 0)
params.setdefault('n_elem2_{}'.format(i), 0)
inp1 = self.get_input_variable(self.inputs[0])
inp2 = self.get_input_variable(self.inputs[1])
for i, (s1, s2) in enumerate(zip(inp1.shape, inp2.shape)):
params['n_elem1_{}'.format(i)] = s1
params['n_elem2_{}'.format(i)] = s2
return self._config_template.format(**params)
layer_map = {
'InputLayer' : Input,
'Activation' : Activation,
'LeakyReLU' : ParametrizedActivation,
'ThresholdedReLU' : ParametrizedActivation,
'ELU' : ParametrizedActivation,
'PReLU' : PReLU,
'Dense' : Dense,
'BinaryDense' : Dense,
'TernaryDense' : Dense,
'Conv1D' : Conv1D,
'Conv2D' : Conv2D,
'BatchNormalization' : BatchNormalization,
'MaxPooling1D' : Pooling1D,
'AveragePooling1D' : Pooling1D,
'MaxPooling2D' : Pooling2D,
'AveragePooling2D' : Pooling2D,
'Merge' : Merge,
'Concatenate' : Concatenate,
def function_cpp(self):
params = self._default_function_params()
params['activation'] = self.get_attr('activation')
params['config'] = '{}_config{}'.format(self.get_attr('activation'), self.index)
return [self._function_template.format(**params)]
def config_cpp(self):
params = self._default_config_params()
params['type'] = self.get_attr('activation')
params['n_in'] = self.get_input_variable().size_cpp()
return self._config_template.format(**params)
class ParametrizedActivation(Activation):
def function_cpp(self):
params = self._default_function_params()
params['activation'] = self._get_act_function_name()
params['param'] = self.get_attr('activ_param', 1.0)
params['config'] = '{}_config{}'.format(self.get_attr('activation'), self.index)
return [self._function_template.format(**params)]
def _get_act_function_name(self):
act = self.get_attr('activation').lower()
if act == 'leakyrelu':
return 'leaky_relu'
elif act == 'thresholdedrelu':
return 'thresholded_relu'
else:
return act # ELU activation
params['activation'] = self._get_act_function_name()
params['param'] = self.get_attr('activ_param', 1.0)
params['config'] = '{}_config{}'.format(self.get_attr('activation'), self.index)
return [self._function_template.format(**params)]
def _get_act_function_name(self):
act = self.get_attr('activation').lower()
if act == 'leakyrelu':
return 'leaky_relu'
elif act == 'thresholdedrelu':
return 'thresholded_relu'
else:
return act # ELU activation
class PReLU(Activation):
def initialize(self):
super(PReLU, self).initialize()
self.add_weights_variable(name='alpha', var_name='a{index}')
def function_cpp(self):
params = self._default_function_params()
params['activation'] = self.get_attr('activation').lower()
params['param'] = self.get_weights('alpha').name
params['config'] = '{}_config{}'.format(self.get_attr('activation'), self.index)
return [self._function_template.format(**params)]
class BatchNormalization(Layer):
def initialize(self):
inp = self.get_input_variable()
shape = inp.shape