Ruby Neural Network example


SUBMITTED BY: Guest

DATE: May 22, 2015, 6:27 a.m.

FORMAT: Ruby

SIZE: 1.1 kB

HITS: 765

  1. require 'ruby-fann'
  2. train = RubyFann::TrainData.new(
  3. inputs: [
  4. [0,0,1,0,1,1,0,0,1,0,0,1,0,0,1], [1,1,1,0,0,1,1,1,1,1,0,0,1,1,1],
  5. [1,1,1,0,0,1,1,1,1,0,0,1,1,1,1], [1,0,1,1,0,1,1,1,1,0,0,1,0,0,1],
  6. [1,1,1,1,0,0,1,1,1,0,0,1,1,1,1], [1,1,1,1,0,0,1,1,1,1,0,1,1,1,1],
  7. [1,1,1,0,0,1,0,1,0,1,0,0,1,0,0], [1,1,1,1,0,1,1,1,1,1,0,1,1,1,1],
  8. [1,1,1,1,0,1,1,1,1,0,0,1,1,1,1]
  9. ],
  10. desired_outputs: [ [1,0,0,0,0,0,0,0,0], [0,1,0,0,0,0,0,0,0],
  11. [0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0],
  12. [0,0,0,0,1,0,0,0,0], [0,0,0,0,0,1,0,0,0],
  13. [0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,0],
  14. [0,0,0,0,0,0,0,0,1] ]
  15. )
  16. fann = RubyFann::Standard.new(
  17. num_inputs: 15,
  18. hidden_neurons: [30],
  19. num_outputs: 9
  20. )
  21. fann.learning_rate = 0.5
  22. fann.momentum = 0.5
  23. fann.train_on_data(train, 10000, 1000, 0.001)
  24. outputs = fann.run([0,0,1,0,1,1,0,0,1,0,0,1,0,0,1])
  25. m = outputs.max
  26. puts "Result: #{( outputs.find_index { |x| x == m } ) + 1}"

comments powered by Disqus