Module: Qoa::Utils
- Included in:
- NeuralNetwork
- Defined in:
- lib/qoa/utils.rb
Instance Method Summary collapse
Instance Method Details
#load_model(file_path) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/qoa/utils.rb', line 24 def load_model(file_path) model_data = JSON.parse(File.read(file_path), symbolize_names: true) @input_nodes = model_data[:input_nodes] @hidden_layers = model_data[:hidden_layers] @output_nodes = model_data[:output_nodes] @learning_rate = model_data[:learning_rate] @activation_func = model_data[:activation_func].to_sym @dropout_rate = model_data[:dropout_rate] @decay_rate = model_data[:decay_rate] @epsilon = model_data[:epsilon] @batch_size = model_data[:batch_size] @layers = model_data[:weights].map { |w| Qoa::Layers::Layer.new(w.first.size, w.size) } @layers.each_with_index do |layer, i| layer.weights = model_data[:weights][i] end end |
#save_model(file_path) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/qoa/utils.rb', line 5 def save_model(file_path) model_data = { input_nodes: @input_nodes, hidden_layers: @hidden_layers, output_nodes: @output_nodes, learning_rate: @learning_rate, activation_func: @activation_func, dropout_rate: @dropout_rate, decay_rate: @decay_rate, epsilon: @epsilon, batch_size: @batch_size, weights: @layers.map(&:weights), } File.open(file_path, 'w') do |f| f.write(JSON.pretty_generate(model_data)) end end |