Class: Mirlo::ANN

Inherits:
Object
  • Object
show all
Defined in:
lib/mirlo/ann/ann.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ ANN

Returns a new instance of ANN.



10
11
12
# File 'lib/mirlo/ann/ann.rb', line 10

def initialize(*args)
  @ann = Mirlo::MultilayerPerceptron.new(*args)
end

Instance Attribute Details

#annObject (readonly)

Returns the value of attribute ann.



2
3
4
# File 'lib/mirlo/ann/ann.rb', line 2

def ann
  @ann
end

Class Method Details

.build(*args, &block) ⇒ Object



4
5
6
7
8
# File 'lib/mirlo/ann/ann.rb', line 4

def self.build(*args, &block)
  instance = new(*args)
  instance.instance_eval(&block)
  instance.ann
end

Instance Method Details

#connect_with_last_layer(layer) ⇒ Object



38
39
40
41
42
43
# File 'lib/mirlo/ann/ann.rb', line 38

def connect_with_last_layer(layer)
  previous_layer = @ann.layers.last

  previous_layer.next_layer = layer
  layer.previous_layer = previous_layer
end

#hidden_layer(n_neurons) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/mirlo/ann/ann.rb', line 22

def hidden_layer(n_neurons)
  hidden_layer   = Mirlo::HiddenLayer.new(n_neurons)

  connect_with_last_layer(hidden_layer)

  @ann.hidden_layers << hidden_layer
end

#input_layer(n_inputs) ⇒ Object



18
19
20
# File 'lib/mirlo/ann/ann.rb', line 18

def input_layer(n_inputs)
  @ann.input_layer = Mirlo::InputLayer.new(n_inputs)
end

#learning_rate(l_rate) ⇒ Object



14
15
16
# File 'lib/mirlo/ann/ann.rb', line 14

def learning_rate(l_rate)
  @ann.learning_rate = l_rate
end

#output_layer(n_outputs) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/mirlo/ann/ann.rb', line 30

def output_layer(n_outputs)
  output_layer = Mirlo::OutputLayer.new(n_outputs)

  connect_with_last_layer(output_layer)

  @ann.output_layer = output_layer
end