class Noggin::Layer

Attributes

bias[RW]
dest_layer[RW]
neurons[RW]
origin_layer[RW]

Public Class Methods

connect_layers(origin_layer, dest_layer, momentum) click to toggle source
# File lib/noggin/layer.rb, line 31
def connect_layers origin_layer, dest_layer, momentum
  dest_layer.biased
  dest_layer.neurons.each do |dest_neuron|
    Noggin::Neuron.connect_neurons dest_layer.bias, dest_neuron, momentum
    origin_layer.neurons.each do |origin_neuron|
      Noggin::Neuron.connect_neurons origin_neuron, dest_neuron, momentum
    end
  end
  origin_layer.dest_layer = dest_layer
  dest_layer.origin_layer = origin_layer
end
new() click to toggle source
# File lib/noggin/layer.rb, line 6
def initialize
  @neurons = []
end

Public Instance Methods

backward_activate!() click to toggle source
# File lib/noggin/layer.rb, line 18
def backward_activate!
  @neurons.each do |neuron|
    neuron.backward_input = neuron.dests.inject(0){ |sum, edge| sum += edge.backward_output }
    neuron.backward_activate!
  end
end
biased() click to toggle source
# File lib/noggin/layer.rb, line 25
def biased
  @bias = Bias.new if bias.nil?
end
forward_activate!() click to toggle source
# File lib/noggin/layer.rb, line 10
def forward_activate!
  @bias.forward_activate!
  @neurons.each do |neuron|
    neuron.forward_input = neuron.origins.inject(0){ |sum, edge| sum += edge.forward_output }
    neuron.forward_activate!
  end
end