Visualization
Evoasm provides means to visualize loss functions and found programs.
require 'evoasm' require 'evoasm/x64' Evoasm.log_level = :warn examples = { [5, 1] => 1, [15, 5] => 5, [8, 2] => 2, [8, 4] => 4, [8, 6] => 2, [16, 8] => 8, [16, 2] => 2, [100, 10] => 10, [60, 10] => 10 } parameters = Evoasm::Population::Parameters.new do |p| p.instructions = Evoasm::X64.instruction_names(:gp, :rflags) p.examples = examples p.deme_size = 2048 p.parameters = %i(reg0 reg1 reg2 reg3) p.kernel_size = 20 p.deme_count = 2 end population = Evoasm::Population.new parameters kernel, loss = population.run do p "gen" population.plot File.join(__dir__, 'loss.gif') end p loss
Loss Functions
Loss functions can be visualized by using Evoasm::Population#plot which will plot the loss function using Gnuplot. If a filename is provided, the loss function graph is saved to file. Otherwise, a window will open.