require 'ruby-fann' train = RubyFann::TrainData.new( inputs: [ [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], [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], [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], [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], [1,1,1,1,0,1,1,1,1,0,0,1,1,1,1] ], desired_outputs: [ [1,0,0,0,0,0,0,0,0], [0,1,0,0,0,0,0,0,0], [0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0], [0,0,0,0,1,0,0,0,0], [0,0,0,0,0,1,0,0,0], [0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,0], [0,0,0,0,0,0,0,0,1] ] ) fann = RubyFann::Standard.new( num_inputs: 15, hidden_neurons: [30], num_outputs: 9 ) fann.learning_rate = 0.5 fann.momentum = 0.5 fann.train_on_data(train, 10000, 1000, 0.001) outputs = fann.run([0,0,1,0,1,1,0,0,1,0,0,1,0,0,1]) m = outputs.max puts "Result: #{( outputs.find_index { |x| x == m } ) + 1}"