快速AI
ruby的神經網絡

Rubyfann或“ Ruby-fann”是一种红寶石寶石(無需軌道),與Ruby/Rails環境中的粉絲(快速人造神經網絡)結合。 Fann是一個免費的本機開源神經網絡庫,它實現了多層人工神經網絡,支持完全連接和稀疏連接的網絡。它易於使用,多功能,文獻良好且快速。 RubyFann使用ruby使與神經網絡的合作變得輕而易舉,並具有額外的好處,即大部分繁重的舉重是本地進行的。
我們的朋友Ethan的演講來自Big-Oh Studios的Lone Star Ruby 2013:http://confreaks.com/videos/2609-lonestarruby2013-neural-networks-with-rubyfann
將此行添加到您的應用程序的gemfile:
gem 'ruby-fann'
然後執行:
$ bundle
或自行安裝:
$ gem install ruby-fann
首先,去這裡並閱讀有關Fann的信息。您不需要在使用寶石之前安裝它,但是了解范恩將幫助您了解Ruby-Fann Gem可以做什麼:http://leenissen.dk/fann/
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 ] )使用train_on_data,train_on_file或cascadetrain_on_data時,可以在訓練期間調用此回調功能。
這對於在培訓期間進行自定義工作非常有用。建議在實施自定義培訓程序時使用此功能,或者在可視化GUI等的訓練等時使用此功能。回調函數所採用的args是給予train_on_data的參數,再加上一個時代參數,該參數告訴訓練有多少個時期這麼遠。
回調方法應返回整數,如果回調函數返回-1,則培訓將終止。
如果在您的子類上實現,將自動調用回調(triending_callback),如下所示:
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 )