Ai rápido
Redes neurais em ruby

Rubyfann, ou "Ruby-Fann" é uma gema de rubi (sem necessidade de trilhos) que se liga a Fann (rede neural artificial rápida) de dentro de um ambiente de rubi/trilhos. A FANN é A é uma biblioteca de rede neural de código aberto gratuito, que implementa redes neurais artificiais multicamadas, suportando redes totalmente conectadas e escassas conectadas. É fácil de usar, versátil, bem documentado e rápido. RubyFann torna o trabalho com redes neurais uma brisa usando ruby , com o benefício adicional de que a maior parte do levantamento pesado é feita nativamente.
Uma palestra dada por nosso amigo Ethan dos estúdios big-oh no Lone Star Ruby 2013: http://confraks.com/videos/2609-lonestarruby2013-neural-networks-with-rubfann
Adicione esta linha ao GemFile do seu aplicativo:
gem 'ruby-fann'
E depois execute:
$ bundle
Ou instale você mesmo como:
$ gem install ruby-fann
Primeiro, clique aqui e leia sobre Fann. Você não precisa instalá-lo antes de usar a jóia, mas o entendimento de Fann o ajudará a entender o que você pode fazer com a gema ruby-fann: http://leenissen.dk/fann/
Documentação Ruby-Fann: http://tangledpath.github.io/ruby-fann/index.html
require 'ruby-fann'
train = RubyFann :: TrainData . new ( :inputs => [ [ 0.3 , 0.4 , 0.5 ] , [ 0.1 , 0.2 , 0.3 ] ] , :desired_outputs => [ [ 0.7 ] , [ 0.8 ] ] )
fann = RubyFann :: Standard . new ( :num_inputs => 3 , :hidden_neurons => [ 2 , 8 , 4 , 3 , 4 ] , :num_outputs => 1 )
fann . train_on_data ( train , 1000 , 10 , 0.1 ) # 1000 max_epochs, 10 errors between reports and 0.1 desired MSE (mean-squared-error)
outputs = fann . run ( [ 0.3 , 0.2 , 0.4 ] ) train . save ( 'verify.train' )
train = RubyFann :: TrainData . new ( :filename => 'verify.train' )
# Train again with 10000 max_epochs, 20 errors between reports and 0.01 desired MSE (mean-squared-error)
# This will take longer:
fann . train_on_data ( train , 10000 , 20 , 0.01 ) fann . save ( 'foo.net' )
saved_nn = RubyFann :: Standard . new ( :filename => "foo.net" )
saved_nn . run ( [ 0.3 , 0.2 , 0.4 ] )Essa função de retorno de chamada pode ser chamada durante o treinamento ao usar o Train_On_Data, Train_On_File ou CascadeTrain_on_Data.
É muito útil para fazer coisas personalizadas durante o treinamento. Recomenda -se usar essa função ao implementar procedimentos de treinamento personalizado ou ao visualizar o treinamento em uma GUI etc. Os args que a função de retorno de chamada leva são os parâmetros dados ao trens_on_data, além de um parâmetro de épocas que informa quantos épocas o treinamento têm levado até agora.
O método de retorno de chamada deve retornar um número inteiro, se a função de retorno de chamada retornar -1, o treinamento será encerrado.
O retorno de chamada (Training_Callback) será chamado automaticamente se for implementado na sua subclasse da seguinte maneira:
class MyFann < RubyFann :: Standard
def training_callback ( args )
puts "ARGS: #{ args . inspect } "
0
end
endhttps://github.com/bigohstudios/tictactoe
git checkout -b my-new-feature )git commit -am 'Add some feature' )git push origin my-new-feature )