Ejemplo n.º 1
0
class DNCOutputLayer():
    def __init__(self, layers_desc, name='linear_output'):
        self.layers_desc = layers_desc
        self.ffnn = FeedForwardNN(layers_desc, name)
        '''
      input:
         layers_desc = Description of each layer (LayerDescription object type )
         error_func = Error function, must has this input:output, expected_output 
         opt_func = Optimization function. Must have next input: error
      '''

    def run_output_layer(self, inputs):
        if len(inputs) != 2:
            raise ValueError(
                'For DNC output layer inputs must be of length 2. Header and read vectors.'
            )

        output_vector = self.ffnn.run_feed_forward_nn(inputs[0])

        output_layer = None

        for layer in self.layers_desc:

            if layer.__class__ is OutputLayerDescription:
                output_layer = layer
                break

        if not output_layer:
            raise Exception(
                'Not OutputLayerDescription was found in layer description.')

        return tf.add(
            output_vector,
            Utility._linear(inputs[1], output_layer.size,
                            output_layer.has_bias))
Ejemplo n.º 2
0
class InterfaceParameters():
    def __init__(self,
                 key_w_layers_desc,
                 intensity_w_layers_desc,
                 erase_layers_desc,
                 add_layers_desc,
                 allocation_layers_desc,
                 write_gate_layers_desc,
                 free_gate_layers_desc,
                 key_r_layers_desc,
                 intensity_r_layers_desc,
                 read_mode_layers_desc,
                 name='interface_parameters'):
        self.key_w_nn = FeedForwardNN(key_w_layers_desc, name)
        self.intensity_w_nn = FeedForwardNN(intensity_w_layers_desc, name)
        self.add_nn = FeedForwardNN(add_layers_desc, name)
        self.erase_nn = FeedForwardNN(erase_layers_desc, name)
        self.allocation_nn = FeedForwardNN(allocation_layers_desc, name)
        self.write_gate_nn = FeedForwardNN(write_gate_layers_desc, name)

        self.free_gate_nn = FeedForwardNN(free_gate_layers_desc, name)

        self.key_r_nn = FeedForwardNN(key_r_layers_desc, name)
        self.intensity_r_nn = FeedForwardNN(intensity_r_layers_desc, name)
        self.read_mode_nn = FeedForwardNN(read_mode_layers_desc, name)

    def run_generation(self, inputs):

        key = self.key_w_nn.run_feed_forward_nn(inputs)
        intensity = self.intensity_w_nn.run_feed_forward_nn(inputs)
        add = self.add_nn.run_feed_forward_nn(inputs)
        erase = self.erase_nn.run_feed_forward_nn(inputs)
        allocation = self.allocation_nn.run_feed_forward_nn(inputs)
        write_gate = self.write_gate_nn.run_feed_forward_nn(inputs)

        free_gates = self.free_gate_nn.run_feed_forward_nn(inputs)

        keys = self.key_r_nn.run_feed_forward_nn(inputs)
        intensities = self.intensity_r_nn.run_feed_forward_nn(inputs)
        read_mode = self.read_mode_nn.run_feed_forward_nn(inputs)

        return key, intensity, add, erase, allocation, write_gate, free_gates, keys, intensities, read_mode
Ejemplo n.º 3
0
class FeedForwardController():
    def __init__(self, layers_desc, name='ffnn_controller'):
        self.ffnn = FeedForwardNN(layers_desc, name)

    '''
   	input:
   		layers_desc = Description of each layer (LayerDescription object type )
   		error_func = Error function, must has this input:output, expected_output 
   		opt_func = Optimization function. Must have next input: error
   	'''

    def run_controller(self, inputs):
        return self.ffnn.run_feed_forward_nn(inputs)
Ejemplo n.º 4
0
 def __init__(self, layers_desc, name='ffnn_controller'):
     self.ffnn = FeedForwardNN(layers_desc, name)
Ejemplo n.º 5
0
 def __init__(self, layers_desc, name='linear_output'):
     self.layers_desc = layers_desc
     self.ffnn = FeedForwardNN(layers_desc, name)
     '''
Ejemplo n.º 6
0
    def __init__(self,
                 key_w_layers_desc,
                 intensity_w_layers_desc,
                 erase_layers_desc,
                 add_layers_desc,
                 allocation_layers_desc,
                 write_gate_layers_desc,
                 free_gate_layers_desc,
                 key_r_layers_desc,
                 intensity_r_layers_desc,
                 read_mode_layers_desc,
                 name='interface_parameters'):
        self.key_w_nn = FeedForwardNN(key_w_layers_desc, name)
        self.intensity_w_nn = FeedForwardNN(intensity_w_layers_desc, name)
        self.add_nn = FeedForwardNN(add_layers_desc, name)
        self.erase_nn = FeedForwardNN(erase_layers_desc, name)
        self.allocation_nn = FeedForwardNN(allocation_layers_desc, name)
        self.write_gate_nn = FeedForwardNN(write_gate_layers_desc, name)

        self.free_gate_nn = FeedForwardNN(free_gate_layers_desc, name)

        self.key_r_nn = FeedForwardNN(key_r_layers_desc, name)
        self.intensity_r_nn = FeedForwardNN(intensity_r_layers_desc, name)
        self.read_mode_nn = FeedForwardNN(read_mode_layers_desc, name)
Ejemplo n.º 7
0
 def __init__(self, layers_desc, name='sigmoid_output'):
     self.ffnn = FeedForwardNN(layers_desc, name)