빠른 ai
ruby 의 신경망

Rubyfann 또는 "Ruby-Fann"은 Ruby/Rails 환경 내에서 Fann (빠른 인공 신경망)에 묶는 Ruby Gem (레일 필요 없음)입니다. FANN은 무료 원시 오픈 소스 신경망 네트워크 라이브러리로, 다층 인공 신경망을 구현하여 완전히 연결된 네트워크와 드물게 연결된 네트워크를 지원합니다. 사용하기 쉽고, 다재다능하고, 문서화되어 있으며, 빠르고 빠릅니다. RubyFann 신경망을 사용하여 ruby 사용하여 산들 바람을 만들어냅니다.
Lone Star Ruby 2013의 Big-Oh Studios에서 우리의 친구 Ethan이 제공 한 대화 : http://confreaks.com/videos/2609-lonestarruby2013-neural-networks-with-rubyfann
이 라인을 응용 프로그램의 보석에 추가하십시오.
gem 'ruby-fann'
그런 다음 실행 :
$ bundle
또는 직접 설치하십시오.
$ gem install ruby-fann
먼저 여기로 가서 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을 반환하면 훈련이 종료됩니다.
콜백 (Training_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 )