AI cepat
Jaringan saraf di ruby

Rubyfann, atau "Ruby-Fann" adalah permata ruby (tidak diperlukan rel) yang berikatan dengan FANN (jaringan saraf buatan cepat) dari dalam lingkungan Ruby/Rails. Fann adalah A adalah perpustakaan jaringan saraf open source asli gratis, yang mengimplementasikan jaringan saraf buatan multilayer, mendukung jaringan yang terhubung sepenuhnya dan jarang terhubung. Mudah digunakan, serbaguna, didokumentasikan dengan baik, dan cepat. RubyFann membuat bekerja dengan Neural Networks menjadi mudah menggunakan ruby , dengan manfaat tambahan bahwa sebagian besar pengangkatan berat dilakukan secara asli.
Pembicaraan yang diberikan oleh teman kami Ethan dari Big-oh Studios di Lone Star Ruby 2013: http://confreaks.com/videos/2609-lonestarruby2013-neural-networks-with-rubyfann
Tambahkan baris ini ke gemfile aplikasi Anda:
gem 'ruby-fann'
Dan kemudian mengeksekusi:
$ bundle
Atau instal sendiri sebagai:
$ gem install ruby-fann
Pertama, buka di sini & baca tentang Fann. Anda tidak perlu menginstalnya sebelum menggunakan permata, tetapi memahami Fann akan membantu Anda memahami apa yang dapat Anda lakukan dengan Ruby-Fann Gem: http://leenissen.dk/fann/
Dokumentasi 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 ] )Fungsi panggilan balik ini dapat dipanggil selama pelatihan saat menggunakan train_on_data, train_on_file atau cascadetrain_on_data.
Ini sangat berguna untuk melakukan hal -hal khusus selama pelatihan. Disarankan untuk menggunakan fungsi ini saat menerapkan prosedur pelatihan khusus, atau ketika memvisualisasikan pelatihan di GUI dll. Args yang diambil fungsi panggilan balik adalah parameter yang diberikan kepada pelatihan train_on_data, ditambah parameter zaman yang menceritakan berapa banyak zaman yang dimiliki pelatihan yang dimiliki oleh pelatihan yang dimiliki oleh pelatihan yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki oleh zaman yang dimiliki. Diambil sejauh ini.
Metode panggilan balik harus mengembalikan bilangan bulat, jika fungsi panggilan balik kembali -1, pelatihan akan berakhir.
Callback (pelatihan_callback) akan secara otomatis dipanggil jika diimplementasikan pada subkelas Anda sebagai berikut:
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 )