الصيام منظمة العفو الدولية
الشبكات العصبية في ruby

Rubyfann ، أو "Ruby-Fann" عبارة عن جوهرة Ruby (لا توجد حاجة مطلوبات) ترتبط بـ Fann (الشبكة العصبية الاصطناعية السريعة) من داخل بيئة Ruby/Rails. FANN هي مكتبة شبكات عصبية محلية مفتوحة المصدر ، والتي تنفذ شبكات عصبية اصطناعية متعددة الطبقات ، تدعم كل من الشبكات المتصلة بالكامل والمتصل. إنه سهل الاستخدام ، متعدد الاستخدامات ، موثق جيدًا ، وسريع. يقوم RubyFann بالعمل مع الشبكات العصبية نسيمًا باستخدام ruby ، مع فائدة إضافية تفيد بأن معظم الرفع الثقيل يتم ذلك أصليًا.
الحديث الذي قدمه صديقنا إيثان من Big-OH Studios في Lone Star Ruby 2013: http://confreaks.com
أضف هذا السطر إلى Gemfile في التطبيق الخاص بك:
gem 'ruby-fann'
ثم تنفذ:
$ bundle
أو تثبيته بنفسك على النحو التالي:
$ gem install ruby-fann
أولا ، اذهب هنا واقرأ عن فان. لا تحتاج إلى تثبيته قبل استخدام الأحجار الكريمة ، لكن فهم فان سيساعدك على فهم ما يمكنك فعله مع جوهر Ruby-Fann: 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.
إنه مفيد جدًا للقيام بأشياء مخصصة أثناء التدريب. يوصى باستخدام هذه الوظيفة عند تنفيذ إجراءات التدريب المخصصة ، أو عند تصور التدريب في واجهة المستخدم الرسومية وما إلى ذلك. أخذ حتى الآن.
يجب أن تُرجع طريقة رد الاتصال عددًا صحيحًا ، إذا كانت وظيفة رد الاتصال تُرجع -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