Class: NeuroGammon::FannPlayer
- Inherits:
-
BaseNeuralPlayer
- Object
- BasePlayer
- BaseNeuralPlayer
- NeuroGammon::FannPlayer
- Includes:
- BoardTools
- Defined in:
- lib/neuro_gammon/fann_player.rb
Instance Attribute Summary
Attributes inherited from BaseNeuralPlayer
#hidden_layers, #learning_rate, #n_inputs, #n_outputs
Attributes inherited from BasePlayer
Class Method Summary collapse
Instance Method Summary collapse
- #cascade_learn!(games) ⇒ Object
-
#initialize ⇒ FannPlayer
constructor
A new instance of FannPlayer.
- #learn!(games) ⇒ Object
-
#read_net_data ⇒ Object
see store_net_data.
- #to_yaml_properties ⇒ Object
Methods included from BoardTools
#reverse_state, #test_for_gammon
Methods inherited from BaseNeuralPlayer
Constructor Details
#initialize ⇒ FannPlayer
Returns a new instance of FannPlayer.
15 16 17 |
# File 'lib/neuro_gammon/fann_player.rb', line 15 def initialize super end |
Class Method Details
.from_yaml(yaml) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/neuro_gammon/fann_player.rb', line 37 def self.from_yaml yaml obj=YAML::load(yaml) class << obj def pub_read_net_data read_net_data end end obj.pub_read_net_data obj end |
Instance Method Details
#cascade_learn!(games) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/neuro_gammon/fann_player.rb', line 19 def cascade_learn! games corpus=generate_corpus games training_data=RubyFann::TrainData.new(:inputs=>corpus[0], :desired_outputs=>corpus[1]) @net.cascadetrain_on_data(training_data,5,5,0.0004) store_net_data end |
#learn!(games) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/neuro_gammon/fann_player.rb', line 26 def learn! games corpus=generate_corpus games training_data=RubyFann::TrainData.new(:inputs=>corpus[0], :desired_outputs=>corpus[1]) @net.train_on_data(training_data,1500,30,0.0004) store_net_data end |
#read_net_data ⇒ Object
see store_net_data
49 50 51 52 53 54 55 |
# File 'lib/neuro_gammon/fann_player.rb', line 49 def read_net_data f=Tempfile.new("fann-net-in") f.write(@net_data) f.flush @net=RubyFann::Standard.new(:filename=>f.path) f.close end |
#to_yaml_properties ⇒ Object
33 34 35 |
# File 'lib/neuro_gammon/fann_player.rb', line 33 def to_yaml_properties ["@n_inputs","@n_outputs","@hidden_layers","@learning_rate","@net_data"] end |